【问题标题】:Must type be fully qualified in section element of .NET config?必须在 .NET 配置的部分元素中完全限定类型吗?
【发布时间】:2013-06-29 08:51:57
【问题描述】:

微软的documentation在.NET配置文件的section元素的type属性上说:

type="全限定类名、程序集文件名、版本、文化、公钥令牌"

这就是通常所说的assembly-qualified class-name,但在同一页面下方的示例中,该值仅仅是fully-qualified class-name(即它没有指定程序集):

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

所以我的问题是:

type 属性是否必须是程序集限定的类名,还是将其设置为完全限定的类名就足够了?

我引用的类在 System.Configuration.dll 中。

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

【问题讨论】:

    标签: .net app-config configuration-files configurationsection


    【解决方案1】:

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

    【讨论】:

    • 它似乎与 type="System.Configuration.ClientSettingsSection" 一起使用,这是一个不在当前程序集中但在 (1) 当前程序集引用的程序集中的类,并且(2) .NET Framework 的一部分。
    • System.dll(可能还有其他一些 .NET Framework)始终在类型解析的范围内。
    • 您是否在某些文档中看到了这一点,或者您是否通过反复试验发现了这一点?
    猜你喜欢
    • 1970-01-01
    • 2014-09-23
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 2016-05-03
    • 2014-02-07
    • 2017-03-22
    相关资源
    最近更新 更多