2015-01-06 4 views
2

C#의 IoC에 구조체가 사용 된 것을 알고 있습니다. 두 가지 방법으로 연결될 수 있습니다. 코드 및 구성을 통해 종속성을 삽입하는 장단점

ObjectFactory.Initialize(x => 
{ 
     x.UseDefaultStructureMapConfigFile = true; 
}); 

<StructureMap> 
    <DefaultInstance PluginType="XXXXXXX, YYYYYY" PluggedType="AAAAA,BBBBB" Scope="PerRequest" /> 
</StructureMap> 

그리고 코드에서

,이 같은 : 구성을 통해

ObjectFactory.Initialize(x => 
{ 
    x.UseDefaultStructureMapConfigFile = false; 
    x.AddRegistry<StructureMapRegistry>(); 
}); 

HttpContextLifecycle cycle = new HttpContextLifecycle(); 
For<IDataRepository<MethodName>>().LifecycleIs(cycle).Use<MethodName>(); 

나는 두 가지 접근 방식의 장점과 단점이 무엇인지 알고 싶어요.

답변

3
  • 구성 :
    • 프로 : 당신이 다시 컴파일 할 필요없이 변경할 수 있습니다.
    • 단점 : 정적 입력이 없습니다. 유형 또는 인터페이스 이름의 오타가 런타임까지 알려지지 않을 수 있습니다.
  • 코드 : 정적 입력 : 프로
    • . 알 수 없거나 호환되지 않는 유형으로는 컴파일 할 수 없습니다.
    • 단점 : 다시 컴파일하지 않고도 변경할 수 없습니다.
+0

이 두 가지 방법 – VSharma

+1

사이의 성능 차이가 거기에 대한 대답 중 하나 "벤치 마크를 이동" "당신은 신경 쓰지한다"또는 "이 눈에 띄지이다"입니다, 어떤을 선택합니다. – CodeCaster