我尝试制作一个像这样的自定义配置类:
WatcherServiceInfoSection<TWatcherServiceDetailElement>
其中TWatcherServiceDetailElement是ConfigurationElement
。
现在当我调用AppConfig的ConfigSections
区域中的类型时,我收到错误:
An error occurred creating the configuration section handler for WatcherServiceInfo:
Could not load type 'Library.Common.Utilities.ConfigurationHandler.WatcherServiceInfoSection<ASNDPService.Configuration.WatcherServiceDetailElement>' from assembly
我正在做什么?我可以在自定义节元素的type属性中使用泛型类型吗?
修改
此外,ConfigurationElementCollection
对象怎么样?就像上面的例子一样,我怎么能做
[ConfigurationProperty("WatcherServiceDetails", IsRequired = true,
IsDefaultCollection = true)]
[ConfigurationCollection(typeof(TWatcherServiceDetailElement), AddItemName = "WatcherServiceDetail")]
public WatcherServiceDetailCollection<TWatcherServiceDetailElement> WatcherServiceDetails
我知道属性不允许使用类型参数,这就是我想知道如何做的。
答案 0 :(得分:3)
您需要指定类型的全名。
这包括泛型类型的全名,后跟`,以及 [...]
e.g。
<component id="FooRetriever"
service="Namespace.IRetrievable`2[[Namespace.Foo, Assembly],[System.String]], Assembly"
type="Namespace.FooRetriever, Assembly"/>
我会试着提出一个更合理的例子。
请参阅http://theburningmonk.com/2010/03/castle-windsor-tips-specifying-generic-types-in-config-file/