【发布时间】:2020-01-24 08:37:22
【问题描述】:
这是我的课:
[DataContract]
public class UserIdParams
{
[DataMember]
public int UserId { get; set; }
[DataMember]
public List<int> ListUserId { get; set; }
}
它包含一个整数列表和一个整数。
我的目标是创建服务 WCF REST : GetUserByID 以根据 id 获取用户列表
[OperationContract]
[WebGet]
List<User> GetUserByID (UserIdParams userIdParams);
但正如我们所知,我们不能在 wcf rest 中将 Array 或复杂类型作为输入参数传递,
(当我这样测试它时,我有这个错误:
另一方面,它适用于 WCF SOAP。
那么知道如何解决我的问题以让所有用户使用 WCF REST 并且参数是一个数组吗? 谢谢,
【问题讨论】:
-
相关(如果不是重复):stackoverflow.com/questions/5241661/…
-
谢谢,是的,它是相关的,但不是重复的,首先我使用的是 Microsoft.Net 4.6 和 Visual Studio 2017,输入参数也是一个数组
-
Complexe 类型按照惯例通过 Post/Put 发送。这个问题是重复的,因为这两种方法都是 get。两者都只有一个参数是复杂类型。答案是相同的,要么序列化并将其作为字符串传递。或者去 Post and Put。或者更改 webconfig endpointBehavior 以便它自己进行序列化。
-
我建议您在使用 post 方法时重构您的方法。如上所述,get方法默认不能序列化参数,所以我们必须手动添加序列化和反序列化方法来解析数据。 blogs.msdn.microsoft.com/carlosfigueira/2011/08/08/…