0

微软在.NET配置文件中的部分元素的类型属性的documentation说:必须在.NET配置的节元素中输入完全限定吗?

TYPE =“完全合格的类名,汇编文件名称,版本,区域性,公钥令牌”

这是什么通常被称为assembly-qualified class-name,但在例如进一步下跌的同一页面的价值仅仅是fully-qualified class-name(即不指定程序集。):

<configuration> 
    <configSections> 
     <section name="sampleSection" 
       type="System.Configuration.SingleTagSectionHandler" /> 
    </configSections> 

所以我的问题是:

是否type属性必须是程序集限定类名,或者是它足以将其设置为完全合格的类名?

我引用的类位于System.Configuration.dll中。

我希望我不必指定类的程序集,因为那时我必须指定版本号,这在构建时我不知道。因此,我希望文档不正确,仅指定完全限定的类名是安全的。我的测试表明,完全合格的类名是足够的,但我不愿意将它发布到生产环境中,而不确定它是否被允许。

回答

1

如果该类未驻留在当前程序集中,则需要指定程序集名称。如果您使用强名称,则版本和公钥信息可能是必需的。

+1

它似乎与type =“System.Configuration.ClientSettingsSection”一起工作,它是一个不在当前程序集中的类,而是在由(1)当前程序集引用的程序集中;(2)的.NET框架。 – HansA

+0

System.dll(也可能是.NET Framework的其他几个版本)始终处于类型解析的范围内。 – nvoigt

+0

您是否在某些文档中看到过这些内容,或者您​​是否通过反复试验发现了这一点? – HansA

相关问题