WCF方法搞砸了

时间:2015-05-19 10:56:08

标签: c# wcf

我创建了一个wcf方法,如下所示,

GetData(string a, string b, string oldParameter)

我将它部署到生产中,现在它被某些K2流程使用了(我根本无法更改参考文献,但它也不允许我这样做)

由于需求变更,我在开发时对此方法进行了此更改

GetData(string a, string b, string newParameter, bool? d)

我还在WCF更新上部署了live以及一些客户端也为此方法创建了一些流程实例。

我刚刚意识到当使用旧方法dll引用的进程之一被称为WCF并且我为string newParameterbool? d获取null时,这是因为他们不知道更改。

现在,如果我将WCF更改为旧方法,我将打破当前进程,如果我保留它,那么旧的进程实例就会被破坏。

我如何将这两种方法都纳入旧版和新版流程实例无错误地工作?

我尝试添加这两种方法,但之后在wcf ...

中不允许这样做

请注意我无法更新对旧流程实例的引用,因为它不被允许

1 个答案:

答案 0 :(得分:0)

非常非常我会说verryyyyyyyyyyyyyyyyyy奇怪的行为,我发现它像这样工作,

GetData(string a, string b, string oldParameter, string newParameter, bool d)
{
    // check if oldParameter is empty/null then use newParameter
}

如果旧进程调用此WCF方法,则通过oldParameter获取值,如果较新的流程实例调用它,则oldParameter中的newParameter为空值和右值。

这样我就可以获得我想要的价值而不会破坏任何东西。