如何硬编码App.Config在DLL文件? C#

时间:2016-04-04 20:54:08

标签: c# web-services dll app-config

我正在为SAP B1编写dll文件,我需要在dll中嵌入App.Config,没有其他选择。 Dll正在使用Web服务。

这就是我的App.config的样子:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="WayBillsSoap">
                    <security mode="Transport" />
                </binding>
                <binding name="WayBillsSoap1" />
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="https://services.rs.ge/WayBillService/WayBillService.asmx"
                binding="basicHttpBinding" bindingConfiguration="WayBillsSoap"
                contract="WayBillWS.WayBillsSoap" name="WayBillsSoap" />
        </client>
    </system.serviceModel>
</configuration>

2 个答案:

答案 0 :(得分:2)

你不能硬编码App.config本身,因为它不是那样设计的。

您可以使用(例如)资源文件(.resx)或使用常量将字符串嵌入自定义类中来创建自己的配置并将其嵌入到您的应用程序中。

但是没有办法嵌入dll。

.NET确实允许dll等程序集拥有自己的yourdll.dll.config文件。但是你无法嵌入它。它必须与你一起坐下,就像它对可执行文件一样。

=======发布配置后编辑=======

阿。所以这就是问题所在。如果嵌入配置,则意味着它无法更改。所以,既然你的配置没有改变就好 - 因为你想嵌入它 - 看起来你正在使用WCF,我建议你以编程方式创建你的WCF端点。

在WCF中,您可以在代码中配置端点,而不是使用App.Config。这样你根本不需要配置。

不幸的是,教你如何做到这一点超出了这个问题的范围,但请看一下这个答案:Programatically adding an endpoint。并试试这个谷歌搜索:“wcf端点编程”。这应该有助于向您展示如何以编程方式创建WCF端点。

答案 1 :(得分:0)

我不确定是否完全替换了App.config,但您可以使用System.Configuration我专门使用System.Configuration.ConfigurationManager.AppSettings["SomeKey"]

来添加和修改代码中的内容

编辑: 这样做不会重写App.config,只是暂时添加/更改它