10

ISimpleCache<IBrokeredDataObject>App.Config ファイルに型エイリアス (次に型) として追加したい型のクラスがあります。

この線

<typeAlias alias="ISimpleCacheOfIBrokeredDataObject" type="MyApplication.ISimpleCache<IBrokeredDataObject>, MyApplication" />

<> のために明らかに間違っていますが、それらをエスケープするとは確信していません。

<typeAlias alias="ISimpleCacheOfIBrokeredDataObject" type="MyApplication.ISimpleCache&lt;IBrokeredDataObject&gt;, MyApplication" />

どちらでも正しいです。

私は現在、Unity を使用するために自分のコードをバラバラにしています。コンパイル可能なコード ベースからは程遠いため、これをすぐにテストすることはできず、ここで何らかの確認を得たいと考えていました。

4

4 に答える 4

22

このブログ投稿をチェックしてください:

ジェネリック型を記述するには、`記号の後にインターフェイス/クラスが受け取るジェネリック型の数を使用します。

そして、同じページのコメントは次のように述べています。

ジェネリックで定数型を使用するには、括弧 ( ) を使用する必要があります[[ ]]

したがって、構成ファイルには次のようなものが含まれているはずです。

<typeAlias alias="ISimpleCacheOfIBrokeredDataObject"
   type="MyApplication.ISimpleCache`1[[MyApplication.IBrokeredDataObject, MyApplication]], MyApplication" />

`通常の一重引用符 ( ) ではなく、「グレーブ アクセント」または「逆引用符」文字 ( ) を使用していることに注意してください'

于 2009-01-18T06:58:35.227 に答える
14

上記の回答にコメントした方がよかったのですが、私のスコアは十分に高くありません。

Type.GetType メソッド (文字列) の構文は、http://msdn.microsoft.com/en-us/library/w3f99sx1.aspx に記載されています

たくさんの例がありますが、そのうちのいくつかを以下に貼り付けました。

1 つの型引数を持つジェネリック型

Type.GetType("MyGenericType`1[MyType]")

2 つの型引数を持つジェネリック型

Type.GetType("MyGenericType`2[MyType,AnotherType]")

2 つのアセンブリ修飾型引数を持つジェネリック型

Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")

アセンブリ修飾された型引数を持つアセンブリ修飾されたジェネリック型

Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")

型引数が 2 つの型引数を持つジェネリック型であるジェネリック型

Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")
于 2011-09-22T15:37:03.617 に答える
2

これは、2 つのジェネリック型を受け取る型を使用する方法です。

<section name="doubleFamilyConfig"
         type="ConfigTest.Configuration.FamilySection`2[
               [ConfigTest.Types.Child, ConfigTest],
               [ConfigTest.Types.Parent, ConfigTest]
               ],
               ConfigTest" />

必要に応じて、各タイプを別の行で使用すると、理解しやすくなります。最初のブラケットは型の直後になければならないことに注意してください ( FamilySection`2**[** )。

于 2009-10-05T10:20:50.900 に答える
1

そして、これはジェネリック パラメーターとして強く署名された型です。

<typeAlias alias="IPublisherOfXElement" type="MyLib.IX.IPublisher`1[[System.Xml.Linq.XElement, System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], MyLib.IX" />
于 2009-06-29T17:32:52.080 に答える