2008-09-27 4 views
2

저는 StructureMap을 설정하고 있습니다. 내가하고 싶은 모든 작업을 수행하는 두 가지 방법이 있으며, 그 차이점은 무엇인지 분명하지 않습니다.StructureMap의 AddConcreteType과 TheDefaultIsConcreteType의 차이점은 무엇입니까?

마찬가지로
StructureMapConfiguration.ForRequestedType<IConsumer>().AddConcreteType<Consumer>(); 

StructureMapConfiguration.ForRequestedType<IConsumer>().TheDefaultIsConcreteType<Consumer>(); 

, AddInstanceOf 및 ForRequestedType를 사용하여 차이점은 무엇입니까 : 예를 들어,이 두 선 사이의 차이점은 무엇입니까?

+0

나는 질문을 다시 태그하는 데 충분한 점수가 없지만 이것이 언어를위한 태그를 추가하는 것을 고려해보십시오. 나는 .NET 프레임 워크를 추측하고있다. – Powerlord

+0

또한 타란티노 프로젝트에서 나온 것이라고 언급하면 ​​좋은 생각입니다. – Powerlord

답변

3
StructureMapConfiguration.ForRequestedType<IConsumer>().AddConcreteType<Consumer>(); 

이 방법은 소비자 유형을 IConsumer의 연결 유형으로 추가합니다. IConsumer에 대해 다른 유형의 연결이없는 경우이 유형은 IConsumer의 인스턴스가 요청 된 기본 유형으로 반환됩니다. 그렇지 않으면 구체 키 (기본적으로 해당 유형의 어셈블리 규정 이름)를 사용하여이 인스턴스를 가져와야합니다.

StructureMapConfiguration.ForRequestedType<IConsumer>().TheDefaultIsConcreteType<Consumer>(); 

이 형식은 기본 형식이기도하지만 AddConcreteType과 유사하게 작동합니다. IConsumer에 대한 요청에서 구체 키가 지정되지 않은 경우이 유형이 반환됩니다.

AddInstanceOf와 ForRequestedType의 차이점은 AddInstance of을 사용하면 지정된 유형의 인스턴스 만들기를 처리 할 대리자를 제공 할 수 있습니다. ForRequestedType은 유창한 방식으로 인스턴스를 구성 할 수 있도록 CreatePluginFamilyExpression (또는 ForRequestedType (유형 t)의 경우 GenericFamilyExpression)의 인스턴스를 제공합니다.

관련 문제