2016-06-28 2 views
0

3 자 라이브러리를 사용하며 빈 생성자의 사용자 지정 생성자 확장을 호출하려고합니다.빈 생성자에 IoC를 사용하는 방법

구조 맵을 사용합니다.

가능합니까? 3 자 라이브러리에서

소스 코드 :

public static T InstantiateType<T>(Type type) 
      { 
       if (type == null) 
       { 
        throw new ArgumentNullException("type", "Cannot instantiate null"); 
       } 
       ConstructorInfo ci = type.GetConstructor(Type.EmptyTypes); 
       if (ci == null) 
       { 
        throw new ArgumentException("Cannot instantiate type which has no empty constructor", type.Name); 
       } 
       return (T) ci.Invoke(new object[0]); 
      } 

나는

x.For<IJobFactory>().Use<StructureMapJobFactory>(); 
       x.ForConcreteType<StructureMapJobFactory>().Configure.SelectConstructor(() => new StructureMapJobFactory(container.GetInstance<IContext>())); 
+0

당신의 코드가 작동합니까? 그렇지 않다면 어떻게됩니까? –

+0

또한'T' 또는'type'을 인스턴스화 하시겠습니까? –

+0

흠 .. 모르겠다. 나는 생각한다. 올바른 형식을 설치했지만 빈 생성자가 아닌 코드를 생성해야합니다. – Mediator

답변

1

당신이 사용할 수있는 시도 :

public static T InstantiateType<T>() where T : new() 
{ 
    return new T(); 
} 
+0

코드를 변경할 수 없습니다. 3 자 라이브러리 소스 코드입니다. – Mediator