如何让用户决定在WCF中请求哪个服务?

时间:2013-02-07 01:38:19

标签: c# .net windows wcf communication

在WCF中,当您要求两个值并且能够使用这些值执行不同的计算时,如何让用户决定请求哪个服务。

例如,您要求value1和值2.用户可以选择使用这些值执行加法,减法和乘法。

你怎么能实现这个目标?

        [OperationContract]
    int GetTwoValues(int value1, int value2);

public int addition(int value1, int value2){
return value1+value2;
}

public int subtraction(int value1, int value2){
return value1-value2;
}

如何做一些像

这样的逻辑
if user.request="addition"{
do addition
}
else if user.request="subtraction"{
do subtraction
}

我知道它不是我编写的代码,只是想让你对我说的内容有所了解。任何帮助将非常感激。

1 个答案:

答案 0 :(得分:1)

我不太清楚我理解这个问题

[OperationContract]
public int Subtraction(int value1, int value2)
{
    return value1 - value2;
}

[OperationContract]
public int Addition(int value1, int value2)
{
    return value1 + value2;
}

可以像

那样工作
[OperationContract]
public int Calculation(int value1, int value2, string calcType)
{
    switch (calcType)
    {
        case "addition":
            return value1 + value2;
        case "subtraction":
            return value1 - value2;
    }
    //return default or throw exception
}

当然,要么两者都没有缺点,但两者都符合你的标准。

编辑:您的评论提出了明显的观点,即切换案例允许用户提供不映射的值。

是的,我不会使用字符串,这是你的榜样!

绕过它的可能方法?

  • 验证用户输入 - 让他们知道何时提供无效的内容
  • 使用默认
  • 抛出异常
  • 使用enum强制用户从预定义列表中进行选择
  • 同样使用第一种方法

我想也许你需要在你的问题中解释更多关于你想要实现的目标。