如何在WampSharp操作结果中处理空值

时间:2018-07-20 09:06:25

标签: c# wampsharp

我是WampSharp的新手,所以在回答时请记住这一点。

某些操作返回的类型如下:

public class Material
{
    public MaterialId Id { get; }
    public SupplementId? SupplementId { get; }   // <=====
    public string Name { get; }
    public string Info1 { get; }
    public string Code { get; internal set; }
    public string TotalQuantity { get; }
}

每当属性SupplementId为null时,WampSharp都会引发异常,告诉我SupplementId为null,这是正确的-它是一个Nullable。 WampSharp是否使用JsonSerializer来处理不忽略空值的问题?如果是这样,如何配置WampSharp使用的JsonSerializer?如何使WampSharp对此进行处理而不会引发异常?


编辑: 经过研究,我发现Json序列化不是问题。我能够定位代码中的点,在这里我可以看到我的客户端收到的原始Json。

  

就像其他人的信息一样   WampSharp.WebSocket4Net.WebSocket4NetTextConnection<TMessage>.OnMessageReceived(object sender, MessageReceivedEventArgs e),它是的消息属性   收到的事件。

这是我收到的Json:

[  
   50,
   933947611565250,
   {  

   },
   [  
      [  
         {  
            "Id":"b96bea25-eafd-4158-8901-1a780fc20598",
            "Name":"100",
            "Info1":"SCHALTKREIS L7915CV",
            "Code":"",
            "TotalQuantity":"365000"
         },
<... more items in list ...>
         {  
            "Id":"11b520eb-128d-4ca2-9e8e-f90fbc181596",
            "Name":"10007",
            "Info1":"Gehäuse MODU 4pol 1reihig weibl.",
            "Code":"",
            "TotalQuantity":"385000"
         }
      ]
   ]
]

到目前为止看来一切都很好。我将预期的数据传递给客户端,并且数据看起来不错。但是,我仍然在WampSharp.V2.CalleeProxy.WampCalleeProxyInvocationHandler.Invoke<T>(ICalleeProxyInterceptor interceptor, MethodInfo method, IOperationResultExtractor<T> extractor, object[] arguments)

中得到一个nullpointer异常。

我很好奇的是Json中的空对象,就在结果数据序列之前。那样行吗?这可能是问题吗?我在做什么错了?

0 个答案:

没有答案