2012-03-28 6 views
1

タイトルには:ユニティ2の<typeConfig />要素の代わりになるものは何ですか?<typeConfig />のUnity 2の置き換えとは何ですか?

または代わり:どのように私はUnityコンフィギュレーションでクラスの型パラメータを設定することができますか?

<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>要素の子として配置されます。

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

それとも、CLRジェネリック型の構文(バージョンとを使用することができます。

があなたの例として、あなたはそうのような、mapToパラメータの一部として、ジェネリック型パラメータを指定する必要があるだろう`1など)ですが、Unityがここで実装するショートカットの構文よりも騒々しいです。

注:上記のエイリアスは、アセンブリー名を含めていないため動作しません。そのため、これらの詳細を調べるまで、このソリューションは機能しません。また、多くのエイリアスが不要になるように、configファイルの<アセンブリ>と<名前空間>宣言を使用することを検討してください。

+0

ありがとうございました!私は、読みやすさのために名前空間/アセンブリの詳細を省略しましたが、 'SomeType'は実際には2つの汎用パラメータを持ち、' ​​ISomeInterface'は実際に_one_を持っていることを忘れていました。ショートカットシンタックスは、構成中に1つの汎用パラメータを提供する方法を提供し、解決中にもう一方を提供しますか? '' – Ropstah

関連する問題