2012-03-28 1 views
1

제목으로 : 유니티 2의 <typeConfig /> 엘리먼트를 대체 할 수있는 것은 무엇입니까?<typeConfig />에 대한 Unity 2 대체품은 무엇입니까?

또는 대안 : 어떻게 유니티 구성에서 클래스의 형식 매개 변수를 구성 할 수 있습니다?

<alias alias="ISomeInterface" type="Namespace.ISomeInterface" /> 
<alias alias="SomeType" type="Namespace.SomeType`1" /> 
<alias alias="Foo" type="Namespace.Foo" /> 
<alias alias="Bar" type="Namespace.Bar" /> 

<container> 
    <register type="ISomeInterface" mapTo="SomeType" name="GenericFoo"> 
     <!-- define generic type as Foo --> 
    </register> 
    <register type="ISomeInterface" mapTo="SomeType" name="GenericBar"> 
     <!-- define generic type as Bar --> 
    </register> 
</container> 

답변

2

< typeConfig> 요소는 단순히 제거 - 실제로는 설정 파일에 잡음을 제외한 아무것도 추가하지 않은 XML 층이었다. typeConfig (예 : < 생성자>, < param> 등) 내에 중첩 된 항목은 이제 < 레지스터의 자식 요소로 배치됩니다.

<register type="ISomeInterface" mapTo="SomeType[Foo]" name="GenericFoo" /> 
<register type="ISomeInterface" mapTo="SomeType[Bar]" name="GenericBar" /> 

아니면 CLR 제네릭 형식 구문 (버전과를 사용할 수 있습니다

이 당신의 예를 들어, 당신은 지금처럼 mapTo 매개 변수의 일환으로 제네릭 형식 매개 변수를 지정해야 할 것 `1 등.)하지만 Unity가 구현하는 바로 가기 구문보다 훨씬 시끄럽다.

참고 : 어셈블리 이름을 포함하지 않았기 때문에 위의 별칭은 작동하지 않으므로 이러한 해결 방법은 해당 세부 사항을 해결할 때까지 작동하지 않습니다. 또한 구성 파일에서 < 어셈블리> 및 < 네임 스페이스> 선언을 사용하여 많은 별칭을 제거해야합니다.

+0

감사합니다. 가독성을 위해 네임 스페이스/어셈블리 세부 사항을 생략했지만,'SomeType'에는 실제로 일반적인 매개 변수가 있고'ISomeInterface'에는 실제로 _one_이 있음을 언급하는 것을 잊었습니다. 바로 가기 구문은 구성을 통해 하나의 일반 매개 변수를 제공하는 방법을 제공하고 해결하는 동안 다른 매개 변수를 제공합니까? ' Ropstah

관련 문제