【c# – 将名称/值对反序列化为对象】教程文章相关的互联网学习教程文章

反序列化的类是空白的 – JSON C#【代码】

我将JSON API响应反序列化为一个类 – 但是在代码运行后该类为空,即根本没有反序列化. 这是一个名为responsetext的JSON示例:{"ON":{"Date":"3/16/2017 10:12:51 AM","PARAM1":"84","PARAM2":"31597.535"},"OFF":{"Date":"3/16/2017 9:05:53 AM","PARAM3":"0","PARAM4":"0"}}我有两节课:public class ON { public Date {get; set;} public string PARAM1 {get; set;} public string PARAM2 {get; set;} } public class OFF { publ...

c# – 使用XML序列化反序列化数组时不期望元素【代码】

好.我正在尝试与Pivotal Tracker API进行通信,该API仅返回XML格式的数据.我有以下XML,我正在尝试反序列化到我的域模型中.<?xml version="1.0" encoding="UTF-8"?> <stories type="array" count="2" total="2"><story><id type="integer">2909137</id><project_id type="integer">68153</project_id><story_type>bug</story_type><url>http://www.pivotaltracker.com/story/show/2909137</url><current_state>unscheduled</current_...

c# – 如果没有setter,则无法反序列化类型【代码】

我在数据库中有二进制序列化对象.它们与protobuf序列化.现在我需要生成一些查看器来查看数据库的内容.所以,我从数据库中读取流并将其反序列化回对象.它工作,结果是对象列表:var dbData = readData(someType);//it is IList collection现在,我想将这个对象列表保存到文件中以查看数据库的内容.我认为将它保存到xml是最好的.所以,我尝试过:var serializer = new XmlSerializer(dbData.GetType());但我得到一个错误:无法反序列化类...

c# – Cosmos DB – CreateDocumentQuery不反序列化抽象类型【代码】

我试图让Cosmos DB .NET SDK v1.19.1使用Json.net序列化设置自动将对象反序列化为正确的类型.除了查询文档时,这似乎工作正常.以下面的代码为例:public abstract class Shape{public int Area { get; set; }}public class Square : Shape { }public class Triangle : Shape { }public class Entity{public string Id { get; set; }public string Name { get; set; }public Shape Shape { get; set; }}static void Main(string[] ar...

c# – 如何调试XML反序列化?【代码】

我想知道你是否有关于如何调试以下XML反序列化的任何提示?我无法让它发挥作用.反序列化器基本上创建了summon和slash实例,但它们的所有属性都是空的.相关课程如下所示. 带反序列化器的SkillCollection类:[DataContract(Name = "Skills", Namespace = "")] public class SkillCollection {[DataMember(Name = "Slash")] public Skill Slash { get; set; }[DataMember(Name = "Summon")] public Skill Summon { get; set; }public s...

c# – 如何使用Json.NET对PropertyInfo进行一般反序列化?【代码】

我需要使用Json.NET序列化许多不同的对象.我真的无法控制所提供的对象,所以我通常使用TypeNameHandling.All进行序列化和反序列化. 但是,其中一些对象无法反序列化.具体来说,我得到一些System.Reflection.RuntimePropertyInfo类型.我想以标准化的方式处理这些问题,因为我不知道反序列化时的目标类型.只要输出对象类型正确,我也不在乎. 我已尝试将CustomCreationConverter类型转换为在JsonSerializerSettings中定义的PropertyInfo.但...

c# – 当类型不匹配时,如何使ASP.NET Web API反序列化失败【代码】

我在ASP.NET Web API(版本5.1.2)中无声地反序列化时遇到问题.我希望反序列化引发错误,但我无法找到它的配置. 我的具体(简化)案例是这样的.客户端应用程序(AngularJS)将HTTP POST请求发送到ASP.NET Web API后端.作为有效载荷,有一堆字符串:["ABC100", "ABC200", "ABC300"]但是,服务器需要一个整数列表:List<int> Ids { get; set; }最终发生的事情是反序列化失败,Ids列表将为空并且没有错误.Ids: []当然也需要修复不匹配,但在我看来...

c# – JSON.NET,如果预期的对象无法反序列化,则实例化回退对象【代码】

我有一个项目树,我正在尝试使用JSON.NET反序列化.有些情况(例如重命名节点类型)可能会导致树上的节点无法反序列化. 在这些情况下,我想插入一个节点的默认实例(可能是其他类型)来代替未反序列化的对象. 这样,我的用户仍然可以加载他们的保存文件,获得他们必须修复的“空”节点……但是,至少他们仍然可以加载他们的文件! 我一直在做一些研究,并且有一些事情要尝试使用SerializationBinder和/或在序列化程序的回调中破解一些错误处理...

c# – Xml反序列化 – 将两个元素合并为一个List对象【代码】

我有一个XML文档,使用反序列化,有没有办法将两个元素组合成一个对象? XML示例:<Parameter1>3</Parameter1> <Parameter2>4</Parameter2>我想创建一个包含项目3和4的列表(类型为Parameter). 我尝试过使用XmlArrayItem,例如:[XmlArrayItem("Parameter1")] [XmlArrayItem("Parameter2")] [XmlArray] public Parameter[] Parameters; // have also tried this as public List<Parameter> Parameters = new List<Parameter>();我尝试过...

c# – 出错“无法反序列化响应”【代码】

我开始学习Microsoft Bot Framework,但是当我尝试使用Connector时,它总是返回:“message”: “An error has occurred.”,“exceptionMessage”: “Unable to deserialize the response.”,“exceptionType”: “Microsoft.Rest.RestException”,这是代码public async Task<Message> Post([FromBody]Message message){try{if (message.Type == "Message"){// calculate something for us to return//int length = (message.Text ??...

c# – .NetCore MVC反序列化【代码】

在.netcore应用程序中,我想提供以下(简化):// Create a new record, assume it returns an ID=1 https://site/MyController/Save?FirstName=John&LastName=Doe&Status=Active// Update the record without full state PUT https://site/MyController/1 {'DOB': '1/1/1970','Status': null }我想将这第二个电话翻译成:UPDATE MyModel SET DOB = '1/1/1970' AND Status=NULL WHERE Id = 1我当然可以在MyController中编写我的Create...

如何在C#反序列化期间进行引用修复?【代码】

如何使用C#序列化框架引用修复(后处理)? 我有一个对象图,其中的对象引用其他对象.它们都实现了ISerializable接口,并且它们都具有实例ID,因此在序列化状态下表示引用很容易. krux是当调用??反序列化构造函数时,该对象引用的所有对象可能都没有被反序列化,因此引用不能设置为有效对象.我找不到任何方法可以挂钩C#序列化框架中的后处理步骤来进行参考修复.有办法吗? 根据要求,这是一个人为的课程,我认为突出了问题.[Serializable] p...

c# – asp.net核心数据保护:反序列化令牌时抛出异常【代码】

我使用redis作为数据保护存储在webfarm上运行asp.net核心. 我的应用程序负载很重,所以我不断从redis得到以下错误:Timeout performing EVAL, inst: 9, queue: 1448, qu: 0, qs: 1448, qc: 0,wr: 0, wq: 0, in: 65536, ar: 0, clientName: xxxx使用microsoft recommendation在startup.cs初始化redis的方式是var redis = ConnectionMultiplexer.Connect("<URI>"); services.AddDataProtection().PersistKeysToRedis(redis, "DataProt...

从Web服务引用的C#类未正确反序列化【代码】

我有一个Web服务,它将类(来自Web服务的类)序列化为MSMQ,然后Windows服务正在检查队列和反序列化. Windows服务有一个Web引用来获取类. 如果我在Web服务中反序列化,一切都很好.但是,当我从Windows服务反序列化时,一切都有效,除了两个字符串数组出现为null,所以我相信有些东西没有通过Web引用正确传输. 这是来自相关课程的片段:[Serializable, XmlInclude(typeof(EmailType))] public partial class Email { [System.Xml.Serializati...

c# – XmlSerializer.通过NetworkStream反序列化块【代码】

我正在尝试通过网络流发送XML可序列化对象. 我已经在UDP广播服务器上使用它,它从本地网络接收UDP消息.这是服务器端的一个片段:while (mServiceStopFlag == false) {if (mSocket.Available > 0) {IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Any, DiscoveryPort); byte[] bData;// Receive discovery messagebData = mSocket.Receive(ref ipEndPoint);// Handle discovery messageHandleDiscoveryMessage(ipEndPoint....