Blazor WebAPI到客户端反序列化异常(PocoJsonSerializerStrategy)

时间:2019-06-11 23:04:48

标签: connector service-reference blazor new-webserviceproxy

我能够通过Microsoft OData连接器服务Nuget生成代理(使用VS 2017)。这样就可以生成代理。

但是,当我尝试通过导线将实体发送到客户端时,出现反序列化异常。使用服务参考/代理生成的实体/数据模型是否存在任何技术问题?

以下是当我从Web API将有效负载检索到客户端时我能够捕获的异常。

  

System.Reflection.TargetParameterCountException:参数数量   指定的与预期的数字不匹配。在   System.Reflection.RuntimeMethodInfo.ConvertValues   (System.Reflection.Binder活页夹,System.Object []参数,   System.Reflection.ParameterInfo [] pinfo,   System.Globalization.CultureInfo文化,   System.Reflection.BindingFlags invokeAttr)<0x34ba990 + 0x00038>在   :0处   System.Reflection.RuntimeConstructorInfo.DoInvoke(System.Object obj,   System.Reflection.BindingFlags invokeAttr,System.Reflection.Binder   活页夹,System.Object []参数,System.Globalization.CultureInfo   文化)<0x36f4b28 + 0x0003a>在:0中   在System.Reflection.RuntimeConstructorInfo.Invoke处   (System.Reflection.BindingFlags invokeAttr,System.Reflection.Binder   活页夹,System.Object []参数,System.Globalization.CultureInfo   文化)<0x36f49e8 + 0x00016>在:0中   在System.Reflection.ConstructorInfo.Invoke处(System.Object []   参数)<0x36f4898 + 0x00016>在   :0处   SimpleJson.Reflection.ReflectionUtils + <> c__DisplayClass25_0.b__0   (System.Object [] args)<0x3e4a758 + 0x00010>在   <8f8c03446dbf45f5bbcb1e109a064f6e>:0 at(包装委托调用)   .invoke_object_object位于   SimpleJson.PocoJsonSerializerStrategy.DeserializeObject(System.Object   值,System.Type类型)<0x37ccce8 + 0x00a82>在   <8f8c03446dbf45f5bbcb1e109a064f6e>:0在   SimpleJson.PocoJsonSerializerStrategy.DeserializeObject(System.Object   值,System.Type类型)<0x37ccce8 + 0x00862>在   <8f8c03446dbf45f5bbcb1e109a064f6e>:0在   SimpleJson.PocoJsonSerializerStrategy.DeserializeObject(System.Object   值,System.Type类型)<0x37ccce8 + 0x00aca>在   <8f8c03446dbf45f5bbcb1e109a064f6e>:0在   SimpleJson.PocoJsonSerializerStrategy.DeserializeObject(System.Object   值,System.Type类型)<0x37ccce8 + 0x00862>在   <8f8c03446dbf45f5bbcb1e109a064f6e>:0在   SimpleJson.SimpleJson.DeserializeObject(System.String json,   System.Type类型,SimpleJson.IJsonSerializerStrategy   jsonSerializerStrategy)<0x37b6130 + 0x00068>在   <8f8c03446dbf45f5bbcb1e109a064f6e>:0在   SimpleJson.SimpleJson.DeserializeObject [T](System.String json)   <8f8c03446dbf45f5bbcb1e109a064f6e>:0中的<0x3f8b148 + 0x0000a>   Microsoft.JSInterop.Json.Deserialize [T](System.String json)   <8f8c03446dbf45f5bbcb1e109a064f6e>:0中的<0x3f8b110 + 0x00004>   Microsoft.AspNetCore.Components.HttpClientJsonExtensions.GetJsonAsync [T]   (System.Net.Http.HttpClient httpClient,

已解决

能够通过使用Henk关于使用Newstonsoft.Json进行序列化的建议来解决此问题。

1 个答案:

答案 0 :(得分:1)

不知道是不是那样,但是我在Blazor 0.7上的工作经验仍在研究硕士论文,那是您不能一次发送或接收嵌套对象。 我的数据库中有Person,并且该Person有一些商店,因此实体将其映射到与此对象相似的对象中 Person{ id:int, name:string, lastName:string, stores:List<Store>} , Store{id:int, name:string, personId:int} 首先必须获得人员,然后进入具有人员ID的数据库以获取该人员的商店。 不知道为什么,但是认为在那个版本中是不可能的。