Как обрабатывать нулевые значения в результатах работы 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, непосредственно перед последовательностью данных результатов. Это нормально? Может ли это быть проблема? Что я делаю неправильно?