App.config需要动态值

时间:2014-10-06 14:11:28

标签: c# .net wcf

我的应用配置目前有这行代码。

<add baseAddress = "http://localhost:8733/Design_Time_Addresses/WcfServiceLibrary1/Service1/" />

但是我要求localhost相当于System.Net.Dns.GetHostName()。关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:3)

我可以建议使用string.Format

<add baseAddressFormat = "http://{0}:8733/Design_Time_Addresses/WcfServiceLibrary1/Service1/" />

然后在代码中:

var baseAddress = string.Format(ConfigurationManager.AppSettings["baseAddressFormat "], System.Net.Dns.GetHostName());

或者您可以在全局应用配置类属性后面隐藏此string.Format调用。它可能是这样的:

public class MyConfig 
{
    public string BaseAddress 
    { 
        get 
        {
            return string.Format(ConfigurationManager.AppSettings["baseAddressFormat "], System.Net.Dns.GetHostName());
        }
    }
}