我能够通过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进行序列化的建议来解决此问题。
答案 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的数据库以获取该人员的商店。
不知道为什么,但是认为在那个版本中是不可能的。