【问题标题】:Custom Configuration Sections自定义配置部分
【发布时间】:2010-10-25 21:49:20
【问题描述】:

我目前正在尝试在我忙于的项目中实现自定义配置部分,无论我尝试什么,我都会收到以下错误:

{“为 pageAppearanceGroup/pageAppearance 创建配置节处理程序时出错:无法从程序集 'System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 加载类型 'Samples.AspNet.PageAppearanceSection' .(E:\三九开发\lastfm\msdn\msdn\bin\Debug\Samples.Aspnet.vshost.exe.config第6行)"}

我已经从这篇 MSDN 文章中复制了代码:

http://msdn.microsoft.com/en-us/library/2tw134k3.aspx

我仍然遇到同样的错误。

我尝试了以下文章中的所有建议/指南,但无济于事。
http://www.evanclosson.com/devlog/bettercustomerrorsinaspnetcustomconfigurationsection

http://geekswithblogs.net/akraus1/articles/64871.aspx

这一定是我想念的愚蠢的东西。 我正在运行 Vista,这会是一个问题吗?一些晦涩的安全设置?

    <configuration>
  <!-- Configuration section-handler declaration area. -->
  <configSections>
    <sectionGroup name="pageAppearanceGroup">
      <section
        name="pageAppearance"
        type="Samples.AspNet.PageAppearanceSection"
        allowLocation="true"
        allowDefinition="Everywhere"
      />
    </sectionGroup>
    <!-- Other <section> and <sectionGroup> elements. -->
  </configSections>

  <!-- Configuration section settings area. -->
  <pageAppearanceGroup>
    <pageAppearance remoteOnly="true">
      <font name="TimesNewRoman" size="18"/>
      <color background="000000" foreground="FFFFFF"/>
    </pageAppearance>
  </pageAppearanceGroup>



</configuration>

【问题讨论】:

  • 如果您标记得当,即使用您正在使用的技术,您将获得更多更好的响应。
  • 你的web.config好像有问题,能发一下相关的部分吗?
  • 没有配置很好,我已经验证了 App.config 和 web.config 我能够从 app.config 和 web.config 中读取 appSettings jsut 很好

标签: asp.net configuration


【解决方案1】:

我的猜测是你复制了代码,但是你有不同的程序集名称。发布配置会有所帮助。

我还将在配置中完全质量您的类型(示例未显示的内容)。比如……

<section name="MySection" type="My.Assembly.Type, My.Assembly" />

【讨论】:

  • 不,那是不对的。我已经正确命名了这些程序集。创建不同的项目试图做同样的事情
  • 好的。查看配置部分定义会有所帮助。
  • 完全限定类型为我做到了。确保所有其他位都连接到:)
【解决方案2】:

您还应该在 CodeProject 上查看 Jon Rista 关于 .NET 2.0 配置的三部分系列。

强烈推荐,写得很好,非常有帮助!

马克

【讨论】:

  • 谢谢,一定会看看这些
  • 给一个人一条鱼,喂他一天,教他怎么钓鱼,喂他一辈子。谢谢会仔细阅读这些文章
  • 我已经阅读了那些文章下载了他们运行的项目没有问题当我尝试复制他们失败的项目时?我不知道为什么
  • 嗯,很多时候,当您定义配置节组和配置节时,只需让程序集和类名 100% 正确 - 这对我来说是最麻烦的。
【解决方案3】:

请尝试以下代码:

<configSections>
    <sectionGroup name="pageAppearanceGroup">
         <section name="pageAppearance" type="Samples.AspNet.PageAppearanceSection,Samples.AspNet" allowLocation="true"         allowDefinition="Everywhere"       />
    </sectionGroup>     <!-- Other <section> and <sectionGroup> elements. -->
</configSections>  

【讨论】:

    【解决方案4】:

    请试试这个

    <configSections>
     <sectionGroup name="pageAppearanceGroup">
      <section name="pageAppearance"
               type="Samples.AspNet.PageAppearanceSection,Samples.AspNet"
               allowLocation="true"
               allowDefinition="Everywhere" />
     </sectionGroup>
     <!-- Other <section> and <sectionGroup> elements. -->
    </configSections>  
    

    谢谢, 韦迪

    【讨论】:

      【解决方案5】:

      所以事实证明,当你在 Visual Studio 中创建项目时,它会自动为项目定义一个 根命名空间(默认为项目名称)。因此,您必须在节类型中包含该根命名空间以及您在设置类中定义的任何自定义命名空间。

      例如,在原始海报的情况下,他们的工作配置可能看起来像这样:

      <section name="MySection" type="ROOT_NAMESPACE.Samples.AspNet.PageAppearanceSection, NAME_OF_ASSEMBLY" />
      

      ROOT_NAMESPACE 和 NAME_OF_ASSEMBLY 在项目属性中定义,如我的项目快照所示。

      在我的特殊情况下,我没有在我的项目中明确定义命名空间。因此,我的部分配置设置只有根命名空间、设置类的名称和程序集的名称;

      <section name="programSettings" type="ShipmentImport.ProgramSettings, ShipmentImport" />    
      

      我知道它晚了几年,但我希望它可以防止其他人像我一样花费数小时。

      【讨论】:

        猜你喜欢
        • 2010-11-12
        • 2013-09-17
        • 2011-07-04
        • 2012-12-12
        • 2013-09-21
        • 2014-01-19
        • 2011-10-02
        • 1970-01-01
        相关资源
        最近更新 更多