我声明了一个这样的方法:
public int MyFunc(int x1, Dictionary<string, string> x2 , string x3 , Guid x4)
我给 Postman 寄了一份请求
{
"x1" : "1",
"x2" : {
"IsRevisit": true,
"key2": "value2"
},
"x3" : "test",
"x4" : "A3E133EA-A692-482A-837A-0BDC9F2D0536"
}
问题:x1、x3和x4正在接收它们的值,但x2没有接收任何值。我把break point写在这条线上:
解决方案不起作用
- 我这样声明方法:
public int MyFunc(int x1, Dictionary<string, object> x2 , string x3 , Guid x4)
- 我把字典写成这样:
"IsRevisit": "true"
最后,我声明了一个类似于字典的结构来实现我的意图。但是,我遇到了接收值的问题。为什么会这样?
项目信息
- WCF服务
- .net framework 4.6
- Visual Studio 2022版本17.6.2
1条答案
按热度按时间o2gm4chl1#
要捕获您得到的特定错误,您可以使用WCF Trace Logging。
我们需要知道我们传递的是什么类型,以便它可以在WCF中反序列化该对象。所以WCF是强类型的。
public int findDuplicate(int x1,int x2,int x3,int x4)
WCF将抛出异常,因为
public int MyFunc(Dictionary<string, object> x2)
捕获所有WCF无法识别的类型。你可以像下面这样定义一个方法:
像这样写
Dictionary<string,myClassObject>
。这样就行了。