Blazor WebAPI to Client反序列化异常(PocoJsonSerializerStrategy)

Blazor WebAPI to Client deserialization exception (PocoJsonSerializerStrategy)

我能够通过 Microsoft OData 连接器服务 Nuget 生成代理(使用 VS 2017)。这会很好地生成代理。

但是,当我尝试通过网络将实体发送到客户端时,出现反序列化异常。使用服务 reference/proxy 生成 entities/data-models 是否有任何技术问题?

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

System.Reflection.TargetParameterCountException: Number of parameters specified does not match the expected number. at System.Reflection.RuntimeMethodInfo.ConvertValues (System.Reflection.Binder binder, System.Object[] args, System.Reflection.ParameterInfo[] pinfo, System.Globalization.CultureInfo culture, System.Reflection.BindingFlags invokeAttr) <0x34ba990 + 0x00038> in :0 at System.Reflection.RuntimeConstructorInfo.DoInvoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) <0x36f4b28 + 0x0003a> in :0 at System.Reflection.RuntimeConstructorInfo.Invoke (System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) <0x36f49e8 + 0x00016> in :0 at System.Reflection.ConstructorInfo.Invoke (System.Object[] parameters) <0x36f4898 + 0x00016> in :0 at SimpleJson.Reflection.ReflectionUtils+<>c__DisplayClass25_0.b__0 (System.Object[] args) <0x3e4a758 + 0x00010> in <8f8c03446dbf45f5bbcb1e109a064f6e>:0 at (wrapper delegate-invoke) .invoke_object_object at SimpleJson.PocoJsonSerializerStrategy.DeserializeObject (System.Object value, System.Type type) <0x37ccce8 + 0x00a82> in <8f8c03446dbf45f5bbcb1e109a064f6e>:0 at SimpleJson.PocoJsonSerializerStrategy.DeserializeObject (System.Object value, System.Type type) <0x37ccce8 + 0x00862> in <8f8c03446dbf45f5bbcb1e109a064f6e>:0 at SimpleJson.PocoJsonSerializerStrategy.DeserializeObject (System.Object value, System.Type type) <0x37ccce8 + 0x00aca> in <8f8c03446dbf45f5bbcb1e109a064f6e>:0 at SimpleJson.PocoJsonSerializerStrategy.DeserializeObject (System.Object value, System.Type type) <0x37ccce8 + 0x00862> in <8f8c03446dbf45f5bbcb1e109a064f6e>:0 at SimpleJson.SimpleJson.DeserializeObject (System.String json, System.Type type, SimpleJson.IJsonSerializerStrategy jsonSerializerStrategy) <0x37b6130 + 0x00068> in <8f8c03446dbf45f5bbcb1e109a064f6e>:0 at SimpleJson.SimpleJson.DeserializeObject[T] (System.String json) <0x3f8b148 + 0x0000a> in <8f8c03446dbf45f5bbcb1e109a064f6e>:0 at Microsoft.JSInterop.Json.Deserialize[T] (System.String json) <0x3f8b110 + 0x00004> in <8f8c03446dbf45f5bbcb1e109a064f6e>:0 at Microsoft.AspNetCore.Components.HttpClientJsonExtensions.GetJsonAsync[T] (System.Net.Http.HttpClient httpClient,

已解决

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

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