自定义配置部分中的泛型

时间:2010-05-05 00:07:16

标签: .net configuration-files

我尝试制作一个像这样的自定义配置类:

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

我知道属性不允许使用类型参数,这就是我想知道如何做的。

1 个答案:

答案 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/

另见Including a generic class in Unity App.Config file