Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual Studio c#允许手动处理带有错误的生成_C#_Visual Studio_Wcf_Object - Fatal编程技术网

Visual Studio c#允许手动处理带有错误的生成

Visual Studio c#允许手动处理带有错误的生成,c#,visual-studio,wcf,object,C#,Visual Studio,Wcf,Object,我使用在不同客户上实现的同一第三方WCF服务的几个不同版本。我面临的问题是,由于差异,我无法使用相同的代码: -旧版本有时不能保存所有方法或方法上的参数 -某些客户可能有一些自定义属性 例如: 我可以做以下两个版本: // configured with http://service.customer1111.com/Service1111.svc?wsdl using(var s = new project.Service.Service1111Client()){ ... } 或 现在,我

我使用在不同客户上实现的同一第三方WCF服务的几个不同版本。我面临的问题是,由于差异,我无法使用相同的代码: -旧版本有时不能保存所有方法或方法上的参数 -某些客户可能有一些自定义属性

例如:

我可以做以下两个版本:

// configured with http://service.customer1111.com/Service1111.svc?wsdl
using(var s = new project.Service.Service1111Client()){
...
}

现在,我必须在10000行代码中找到10个不同的地方,并注释掉错误的版本,以便在更改服务时能够构建项目

我想:

Decimal bmi;
if (ConfigurationManager.AppSettings["customerID"] == "1111")    
    {
       // method on 1111 - ignore build error on others
       bmi = s.ComputeBMI(m); 
    }
    else
    {
       // method on others - ignore build error on 1111
       bmi2 = s.ComputeBMI(m, 2); 
    }
但这显然无法建立

我正在寻找一种在某些代码块中“忽略构建错误”的方法

否则,这些差异对我的代码影响很小,创建和解析抽象类是一项艰巨的任务

有什么办法可以做到这一点吗

您可以像这样使用c#预处理器指令()


您可以使用#if#else#endif编译器指令,但这仍然需要您编辑所有代码..这实际上可能有效!或者它看起来无论如何都是这样:-)我仍然需要为不同的服务重新编译,但是在10-20个不同的地方进行注释的任务现在可以只编辑项目属性上的一个条件符号。。。伟大的如果你想得到信任,请写一个答案:-)
Decimal bmi;
if (ConfigurationManager.AppSettings["customerID"] == "1111")    
    {
       // method on 1111 - ignore build error on others
       bmi = s.ComputeBMI(m); 
    }
    else
    {
       // method on others - ignore build error on 1111
       bmi2 = s.ComputeBMI(m, 2); 
    }
 Decimal bmi;
    #if
       bmi = s.ComputeBMI(m); 
    #else
       bmi = s2.ComputeBMI(m, 2);
    #endif