在WCF中设置环境变量

时间:2012-04-24 08:19:04

标签: c# wcf web-config

我有一个WCF应用程序,它有2个默认配置,Debug和Release。我还添加了两个发布配置文件,Test and Live。在我的代码中,我使用了一个具有类似构造函数的类:

public MyClass(string server)
{
    server = server.ToLower();
    switch (server)
    {
        case "live":
            LogonToLive();
            break;
        case "test":
            LogonToTest();
            break;
}

然后我在整个应用程序中使用它,如:

using(var ax = new MyClass("test"))
{
    // do stuff in my Test Environment
}

我想要做的是在我的web.config中设置一些变量,它会根据我设置的配置/发布配置文件自动将MyClass("test")替换为正确的服务器。这可能吗?

2 个答案:

答案 0 :(得分:1)

您可以使用conditional compiling的跟踪常量来确定构建配置,并从“Configuration”类中的属性中提取所需的值,或者其他内容:

public static string Server {
  get {
#if DEBUG
    return ConfigurationManager.AppSettings[key0];
#else
    return ConfigurationManager.AppSettings[key1];
#endif
  }
}

我认为确定出版资料是一个不同的鱼,可以这么说。

答案 1 :(得分:0)

为什么不为服务器名称添加一个应用程序设置,并在短暂时间读取它以找出服务器。