在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
}
我知道它不是我编写的代码,只是想让你对我说的内容有所了解。任何帮助将非常感激。
答案 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
强制用户从预定义列表中进行选择我想也许你需要在你的问题中解释更多关于你想要实现的目标。