如何从c#客户端将多个参数传递给WCF Restful服务?

时间:2016-02-08 16:27:57

标签: c# wcf wcf-rest

我有一个WCF Restful服务调用,需要多个参数。

请考虑以下数据和服务合同。

public class ClassA
{
   public string aString{ get; set;}
   public int aInt {get; set;}
}

public class ClassB
{
   public string bString{ get; set;}
   public int bInt {get; set;}
}

[ServiceContract]
public interface ISampleService
{
   [OperationContract(IsOneWay = false)]
   ClassC GetSomeData(ClassA classA, string sValue, ClassB classB);
}

我有一个基于C#/ winform的测试应用程序。 我知道在调用服务之前需要包装所有这些参数。 我很难搞清楚调用该服务的C#代码在客户端看起来是什么样的。

有人可以告诉我一个如何构建客户端代码以调用上面定义的服务的示例吗?

谢谢, JB

2 个答案:

答案 0 :(得分:0)

在为ISampleService设置端点后,您应该能够像普通方法一样调用服务。

var result = ISampleService.GetSomeData(
    new A { aString = "A string" }, 
    "someValue", 
    new B()
);

WCF将其转换为远程过程调用。只需确保您要传递的所有参数都是可序列化的。

答案 1 :(得分:0)

我想出的最简单的方法是创建一个接受ArrayList的RESTFul接口。

在客户端,所需的复杂参数(类)被序列化为字符串,然后插入到ArrayList中。

在服务方面: 1)验证ArrayList是否包含所需数量的参数 2)从传入的ArrayList

反序列化复杂对象

我不确定这是否是最优雅或被接受的"这样做的方法,但它的工作原理。