WCF服务 - OperationContract - 字符串数组

时间:2009-10-15 08:34:22

标签: c# jquery json wcf

我正在构建WCF服务,其中一个OperationContact应该在输入时使用字符串数组。

POST请求是使用$ .toJSON函数从jQuery构建的,看起来像

    {"user":"77cae724-d5b3-412d-9499-2cfc175bf66f",
"data1":["ba3be5f2-c65d-4c21-86b1-829cad246746","604c53b1-1e24-42f7-8aba-93314eb0878e"],
"data2":"d15c3cf6-02c8-42f2-9753-ab2f5e10b21e",
"data3":["6449b58c-272c-4c98-a2fd-bd47ca248bb3","595fbefd-411e-40b1-afa1-f1f96495a8c1"]}

我创建合同如:

[OperationContract]  
bool function1(string userGuid, List<string> userOrganization, List<string> userCostUnit, List<string> userGroup);

 [OperationContract]  
bool function1(string userGuid, string[] userOrganization, string[] userCostUnit, string[] userGroup);

但似乎没有任何效果。我刚收到500内部服务器错误。 输入数据(json数据)有问题吗?

你能否告诉我减速功能应该怎么样才能让它发挥作用。

1 个答案:

答案 0 :(得分:2)

您的合同与您的JSON不匹配(例如,JSON成员称为“用户”,但您在合同中使用“userGuid”。)

你可以做,例如:

[WebInvoke(RequestFormat = WebMessageFormat.Json)] [OperationContract的] bool function1(Guid用户,List data1,Guid data2,List data3);

您可能还需要使用WebInvoke.BodyStyle来完成这项工作 - 我认为它应该是“Wrapped”。