从 DLL 参考加载自定义配置部分
Loading Custom Configuration Section from DLL Reference
在我们的项目中,我们定义了一个自定义配置部分,在项目中引用时可以正常工作。现在我们正试图从作为参考添加的 dll 中引用相同的配置部分。通过此 dll 中的代码,我们可以毫无问题地访问 ConfigurationManager.AppSettings,但在访问配置条目时出现错误。
Web.config代码
<section name="mailManager" type="FullNamespace, NameSpace" />
<mailManager prop1="propVal1">
<prop2 key1="keyVal1" key2="keyVal2" key3="keyVal3" />
<prop3 key1="keyVal1" key2="keyVal2" />
</mailManager>
在引用它的 dll 中尝试获取配置部分时抛出以下错误。此部分存在于 dll 的解决方案和主要解决方案代码库中。
var mailManagerConfigSection = ConfigurationManager.GetSection("mailManager") as EmailManagerConfigSection;
我们得到的错误是错误CS0433:'EmailManagerConfigSection'类型存在于'namespace1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'和'namespace2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'中。
dll 引用存在于主代码 运行 所在的同一个 bin 目录中。无论如何让 dll 引用具有值的主 EmailManagerConfigSection 而不是 dll 的本地值是 null?我们不想引入任何 dll.config 文件。
必须从可执行文件而不是 DLL 中定义、加载和引用配置部分。
您可以将配置文件的源代码保留在您的解决方案中的 dll 项目中 space,但是无论 dll 的编译将配置文件放在何处,app.config 主机可执行文件(引用dll)必须在其中声明并指定该文件 app.config [ApplicationName.Exe.config] 只需添加适当的 <ConfigSections>
<section>
配置到主机可执行文件中的元素和实际部分元素 app.config.
在我们的项目中,我们定义了一个自定义配置部分,在项目中引用时可以正常工作。现在我们正试图从作为参考添加的 dll 中引用相同的配置部分。通过此 dll 中的代码,我们可以毫无问题地访问 ConfigurationManager.AppSettings,但在访问配置条目时出现错误。
Web.config代码
<section name="mailManager" type="FullNamespace, NameSpace" />
<mailManager prop1="propVal1">
<prop2 key1="keyVal1" key2="keyVal2" key3="keyVal3" />
<prop3 key1="keyVal1" key2="keyVal2" />
</mailManager>
在引用它的 dll 中尝试获取配置部分时抛出以下错误。此部分存在于 dll 的解决方案和主要解决方案代码库中。
var mailManagerConfigSection = ConfigurationManager.GetSection("mailManager") as EmailManagerConfigSection;
我们得到的错误是错误CS0433:'EmailManagerConfigSection'类型存在于'namespace1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'和'namespace2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'中。
dll 引用存在于主代码 运行 所在的同一个 bin 目录中。无论如何让 dll 引用具有值的主 EmailManagerConfigSection 而不是 dll 的本地值是 null?我们不想引入任何 dll.config 文件。
必须从可执行文件而不是 DLL 中定义、加载和引用配置部分。
您可以将配置文件的源代码保留在您的解决方案中的 dll 项目中 space,但是无论 dll 的编译将配置文件放在何处,app.config 主机可执行文件(引用dll)必须在其中声明并指定该文件 app.config [ApplicationName.Exe.config] 只需添加适当的 <ConfigSections>
<section>
配置到主机可执行文件中的元素和实际部分元素 app.config.