Как обрабатывать нулевые значения в результатах работы 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 является нулем, который является правдой - это Nullable. Имеет ли это дело с JsonSerializer WampSharp использует не игнорируя нулевые значения? Если да, как я могу настроить JsonSerializer, используемый WampSharp? Как я могу заставить 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"
         }
      ]
   ]
]

Похоже, что пока все в порядке. Я получаю ожидаемые данные клиенту, и данные выглядят хорошо. Тем не менее, я все еще получаю исключение nullpointer в WampSharp.V2.CalleeProxy.WampCalleeProxyInvocationHandler.Invoke<T>(ICalleeProxyInterceptor interceptor, MethodInfo method, IOperationResultExtractor<T> extractor, object[] arguments)

Что меня интересует, так это пустой объект в Json, непосредственно перед последовательностью данных результатов. Это нормально? Может ли это быть проблема? Что я делаю неправильно?

0 ответов

Другие вопросы по тегам