public function __construct($type_, $provider_, $isPrimitive_)
 {
     parent::__construct($type_, $provider_::getType(), $isPrimitive_);
     if (is_string($provider_)) {
         $this->m_providerType = $provider_;
     } else {
         $this->m_provider = $provider_;
         $this->m_providerType = get_class($provider_);
     }
 }
 public function __construct($type_, $instance_, $isPrimitive_)
 {
     $this->m_instance = $instance_;
     parent::__construct($type_, $isPrimitive_ ? $type_ : get_class($instance_), $isPrimitive_);
 }
 public function __construct($type_, $targetType_)
 {
     parent::__construct($type_, $targetType_, false);
 }