У меня есть проект, который является клиентом WCF, использующим конечные точки netTCP. Проект компилируется в 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 всегда возвращает ноль. Я также заметил, что app.config после компиляции переименовывается во что-то вроде Embedded_DCC_Client.dll.config. Почему он не может найти мои appsettings? Почему возвращается ноль? Спасибо.