如何在一个WCF请求中发送多个返回值?

nzd*_*dev 3 .net c# wcf response request

以下是WCF服务我希望同时从用户那里获得5个值,并向他们发送添加前两个值的响应作为AddedResult,添加结果的减法和第三个值作为SubtractedResult,SubtractedResult和第四个值的乘法作为MultipliedResult和multipliedResult和第5个值的分割为DividedResult.

我知道这看起来没有意义,但我正在尝试用这些进行一些预先测试,但我是WCF的新手,任何可以提供帮助的人都会非常感激.

public interface IService1
{

    [OperationContract]
    string GetValuesForCalculation(int value1, int value2, int value3, int value4, int value5);


    // TODO: Add your service operations here
}


public class Service1 : IService1
{

    public int GetValuesForCalculation(int value1, int value2, int value3, int value4, int value5)
    {
        int AddedResult;
        int SubtractedResult;
        int MultipliedResult;
        int DividedResult;

        AddedResult = (value1 + value2);
        SubtractedResult = (AddedResult - value3);
        MultipliedResult = (SubtractedResult - value4);
        DividedResult =(MultipliedResult/value5);

        return AddedResult;
        return SubtractedResult;
        return MultipliedResult;
        return DividedResult;
    }


}
Run Code Online (Sandbox Code Playgroud)

如何同时返回4个值?

Sco*_*ain 7

你需要制作一个DataContract并返回该对象.

[ServiceContract()]
interface IService1
{
    [OperationContract]
    ReturnValue GetValuesForCalculation(int value1, int value2, int value3, int value4, int value5);
}


public class Service1 : IService1
{
    public ReturnValue GetValuesForCalculation(int value1, int value2, int value3, int value4, int value5)
    {
        int AddedResult;
        int SubtractedResult;
        int MultipliedResult;
        int DividedResult;

        AddedResult = (value1 + value2);
        SubtractedResult = (AddedResult - value3);
        MultipliedResult = (SubtractedResult - value4);
        DividedResult =(MultipliedResult/value5);

        var returnValue = new ReturnValue(AddedResult, SubtractedResult, MultipliedResult,DividedResult); 

        return returnValue ;
    }
}

[DataContract]
public class ReturnValue
{
    public ReturnValue(int addedResult, int subtractedResult, int multipliedResult, int dividedResult)
    {
        AddedResult = addedResult;
        SubtractedResult = subtractedResult;
        MultipliedResult = multipliedResult;
        DividedResult = dividedResult;
    }

    [DataMember]
    public int AddedResult {get; set;}

    [DataMember]
    public int SubtractedResult {get; set;}

    [DataMember]
    public int MultipliedResult {get; set;}

    [DataMember]
    public int DividedResult {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

在客户端,ReturnValue该类将由生成客户端代理的相同代码自动生成(无论是Visual Studio或svcutil.exe中内置的工具)

下面是MSDN页面DataContracts.