gpt4 book ai didi

c# - App.config AppSettings 返回空

转载 作者:行者123 更新时间:2023-11-30 13:40:27 25 4
gpt4 key购买 nike

我有一个项目是使用 netTCP 端点的 WCF 客户端。该项目编译成一个 DLL,该 DLL 被另一个项目引用。我使用 AppSettings 在本地和远程 ip 端点之间切换,如下所示:

    public EmbeddedClient()
{
//Grab ip to use: remote or local (used for simulator)
String location = ConfigurationSettings.AppSettings["ipAddress"];
String ip = ConfigurationSettings.AppSettings[location];

//Default to localhost if no appsetting was found
if (ip == null)
ip = "localhost";

String address = String.Format("net.tcp://{0}:9292/EmbeddedService", ip);

//Setup the channel to the service...
channelFactory = new ChannelFactory<IEmbeddedService>(binding, new EndpointAddress(address));

}

我的 App.Config 是我的 AppSettings 和 WCF 端点所在的地方:

  <?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="ipAddress" value="local"/>
<!-- Replace above value to "local" (Simulator) or "remote" (Harware)-->
<add key="local" value="localhost"/>
<add key="remote" value="192.168.100.42"/>
</appSettings>

<system.serviceModel>
<!--WCF Endpoints go here--->
</system.serviceModel>
</configuration>

当我编译项目时,appsetting 总是返回 null。我还注意到 app.config 在编译后被重命名为类似 Embedded_DCC_Client.dll.config 的东西。为什么找不到我的应用程序设置?为什么它返回空值?谢谢。

最佳答案

听起来您正在尝试将配置文件与 DLL 一起使用 - 这是行不通的。您需要在引用 WCF DLL 的应用程序的应用程序文件中设置您的应用程序设置和特定于 WCF 的设置。 DLL 将使用调用应用程序的配置文件。

换句话说:

MyWCF.dll - 这是您的 WCF DLL。

MyApplication.exe - 这是一个引用 WCF.DLL 的应用程序。

您可以将您的应用设置和 system.serviceModel 设置放在 MyApplication.exe 的 app.config 文件中。然后 MyWCF.DLL 应该从该配置中读取值。

关于c# - App.config AppSettings 返回空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7853337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com