我声明了一个这样的方法:
public int MyFunc(int x1, Dictionary<string, string> x2 , string x3 , Guid x4)
我用这个正文从邮递员发送了一个请求:
{
"x1" : "1",
"x2" : {
"IsRevisit": true,
"key2": "value2"
},
"x3" : "test",
"x4" : "A3E133EA-A692-482A-837A-0BDC9F2D0536"
}
问题: x1、x3 和 x4 正在接收它们的值,但 x2 没有接收到任何值。我在线上放置了断点:
解决方案不起作用
public int MyFunc(int x1, Dictionary<string, object> x2 , string x3 , Guid x4)
"IsRevisit": "true"
最终,我声明了一个类似于字典的结构来完成我的意图。但是,我在接收值时遇到了这个问题。为什么会这样?
项目信息
要捕获您遇到的特定错误,您可以使用 WCF 跟踪日志记录。
我们需要知道我们传递的是什么类型,以便它可以在 wcf 中反序列化该对象。所以 WCF 是强类型的。
public int MyFunc(int x1, 字典
x2 , 字符串 x3 , 指南 x4)
WCF 将抛出异常,因为
public int MyFunc(Dictionary<string, object> x2)
捕获 WCF 无法反序列化的所有定义类型。
您可以定义如下方法:
[OperationContract]
int Method(MyClass myClassObject);
然后这样写
Dictionary<string,myClassObject>
。然后就可以了。