在 Unity App.Config 文件中包含通用类
-
19-08-2019 - |
题
我有一类类型 ISimpleCache<IBrokeredDataObject>
我想在 App.Config 文件中添加为类型别名(然后是类型)
线
<typeAlias alias="ISimpleCacheOfIBrokeredDataObject" type="MyApplication.ISimpleCache<IBrokeredDataObject>, MyApplication" />
由于 <> 显然是错误的,但是我不相信可以逃避它们;
<typeAlias alias="ISimpleCacheOfIBrokeredDataObject" type="MyApplication.ISimpleCache<IBrokeredDataObject>, MyApplication" />
也是正确的。
我目前正在分解我的代码以使用 Unity,因此距离可编译的代码库还太远,无法快速测试,并希望在这里得到一些确认。
解决方案
查看 这 博客文章:
为了编写泛型类型,请使用
`
符号后跟接口/类接收的泛型类型的数量。
同一页面上的评论说:
为了在泛型中使用常量类型,您需要使用括号(
[[ ]]
).
所以我猜你的配置文件应该包含这样的内容:
<typeAlias alias="ISimpleCacheOfIBrokeredDataObject"
type="MyApplication.ISimpleCache`1[[MyApplication.IBrokeredDataObject, MyApplication]], MyApplication" />
请注意“重音符号”或“反引号”字符的使用(`
),不是普通的单引号 ('
).
其他提示
我会宁愿评论了上面的答案,但我的分数不够高。
的语法记录在Type.GetType方法(字符串)此: HTTP ://msdn.microsoft.com/en-us/library/w3f99sx1.aspx
有一堆的例子,其中的一些在下面我粘贴。
:一种一般类型的一个类型参数强>
Type.GetType("MyGenericType`1[MyType]")
:一种一般类型有两个类型的参数强>
Type.GetType("MyGenericType`2[MyType,AnotherType]")
:一种一般类型有两个集限定类型参数强>
Type.GetType("MyGenericType`2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")
系统集限定通用类型与集限定类型参数强>
Type.GetType("MyGenericType`1[[MyType,MyAssembly]],MyGenericTypeAssembly")
:一种通用的类型,其类型参数是一个通用的类型具有两个类型的参数强>
Type.GetType("MyGenericType`1[AnotherGenericType`2[MyType,AnotherType]]")
和这是你如何使用,其接收两个通用类型类型:
<section name="doubleFamilyConfig"
type="ConfigTest.Configuration.FamilySection`2[
[ConfigTest.Types.Child, ConfigTest],
[ConfigTest.Types.Parent, ConfigTest]
],
ConfigTest" />
可以,如果你愿意的话,使得它更容易理解在不同的线路上使用每一种类型。注意,第一支架必须的类型之后是正确的(FamilySection`2 ** [**)。
和这强烈签名类型作为通用参数。
<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" />
不隶属于 StackOverflow