【使用C#进行序列化】教程文章相关的互联网学习教程文章

c#-序列化从DynamicObject类派生的类的实例【代码】

我有一个从DynamicObject类派生的类.调用JsonConvert.SertializeObject时,不会动态化任何动态属性. 类定义为public class Component : DynamicObject{// The inner dictionary.public Dictionary<string, object> dictionary= new Dictionary<string, object>();[JsonProperty(PropertyName = "id")]public string Id { get; set; }// If you try to get a value of a property // not defined in the class, this method is calle...

c#-枚举属性,Web API,JSON反序列化和错别字【代码】

假设我们有一个像这样的课程:public class Person {[JsonConstructor]public Person(string name, DayOfWeek bornOnDay) => (Name, BornOnDay) = (name, bornOnDay);public string Name { get; protected set; }public DayOfWeek BornOnDay { get; protected set; } }还有一个这样的端点:[HttpPost] [Route("api/people")] public IHttpActionResult PostPerson([FromBody]List<Person> people) {// whatever }我注意到,如果我在...

如何创建C#类以反序列化以方括号开头和结尾的JSON字符串【代码】

我正在从API接收到JSON字符串,并想将其反序列化为C#对象,但无法正确获取类. 我尝试使用http://json2csharp.com/创建类,但无法解析JSON,但是https://jsonlint.com/表示JSON有效. 我也尝试运行JsonClassGeneratorLib,但这说明Unable to cast object of type Newtonsoft.Json.Linq.JValue to Newtonsoft.Json.Linq.JObject这似乎是一个问题,因为JSON括在[]方括号中.我相信这是有效的,但可以将其放入数组.我想我班上某个地方需要一个数...

C#为xml可序列化类创建XSD的最简单方法是什么【代码】

首先,我是这个主题的新手,在收集了很多背景信息之后,我变得更加困惑. 我有几个类,它们都是可序列化的,有一些实现IXmlSerializable.在适当的位置用[XmlRoot],[XmlAttribute]等标记这些类. 我想知道的是如何使用现有标签为每个类创建一个简单的XSD.我对手动和编程方式都感兴趣.如果可能的话,我宁愿使用VS2008中集成的工具.解决方法:好吧,使用IXmlSerializable可以关闭所有赌注,因为无法保证任何模式.但是,其余的:xsd.exe <assembly>...

C#二进制序列化【代码】

我正在尝试将对象与字节数组进行序列化和反序列化以进行网络通信,目前我有一个接口“ ISerialize”.但是,我认为应该有一种更强大的方法来通过反射来做到这一点. 我已经使用BinaryFormater进行了一些研究,但是我看不到它是否可以为我提供所需的控件. 编辑: 我希望能够装饰一个如下类(其中字段可以是任何类型,只要它们是系统类型或也可以[可序列化])[Serializable] public class MyClass {[NonSerialized]SomeOtherClass _classFeil...

c#-(反序列化)“二进制流不包含有效的BinaryHeader”错误?【代码】

我在“对象到字节不起作用”之前创建了一个帖子.我修复了用户说的问题,但仍然存在问题. 错误消息:找不到反序列化“ WindowsFormsApplication1.Form1项”类型的对象的构造函数.void start() {Item item = new Item();item.files.Add(@"test");byte[] b = ObjectToByteArray(item); Item k = Desriles(b);}[Serializable] public class Item : ISerializable {public Item(){files = new List<string>();Exclude = false;CleanEmpt...

通用属性的C#XML序列化【代码】

我有以下课程:public class Response<T> { public string Status { get; set; }public T GenericType { get; set; } } public class Order {public string Number { get; set; } } public class Customer {public string Name { get; set; } }并希望获得:var r = new Response<Order>(); r.GenericType = new Order { Number = "1" };序列化后的以下xml:<Response><Order><Number>1</Number></Order></Response>对于:var r = n...

C#中涉及引用时的序列化和反序列化【代码】

我有一个称为Manager的单例类,其中包含对象实例列表:static class Manager {static List<Foo> Foos = new List<Foo>(); }然后,我使用名为Meter的类来收集对象实例,该类使用对列表Foos中各项的引用:class Meter {public Foo MyFoo = null; }...public void CreateMeter(int UserChoice) {Meter MyMeter = new Meter();MyMeter.MyFoo = Manager.Foos[UserChoice]; }当应用程序保存项目文件时,它将序列化Foo中的Foo实例以及Meter的所...

C#字节数组XML序列化【代码】

我有一个字节数组public byte[] values;我用数据填充new byte[64];我对其进行序列化,然后得到以下XML部分:<values> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== </values>我在SO中找到以下解决方案:[XmlElement("values", DataType = "hexBinary")]public byte[] values;现在,我得到的是与上面相同的XML,只是带有“ 0”而不是“ A”. 当我序列化例如一个Int16 / Int32 / sbyte数...

c#-这是反序列化Facebook JSON字符串的好方法吗?【代码】

这是我第一次尝试反序列化Facebook返回的JSON字符串.我想确保将来的开发人员可以舒适地维护我的代码,所以我想知道这样做是否可行.我担心如果JSON字符串更改,那么我将需要重写一些类.从Facebook返回的JSON字符串是否可能会更改?例如,如果位置变成了另一个对象,我需要进行更改吗?using System; using System.Collections; using System.Collections.Generic; using System.Globalization; using System.Text; using System.Web; //...

首页> C#>如何序列化包含接口的不可修改的类?【代码】

我正在尝试序列化包含接口的对象.但是,接口无法序列化.通常,我会使用类似NonSerialized标记的名称,但是我无法弄清楚如何将此属性应用于无法修改的类,例如预定义的.NET类之一(例如:System.Diagnostics.Process). 例如,考虑以下代码:using System.Diagnostics using System.Xml.Serialization;class Program {static void Main(string[] args){try{XmlSerializer x = new XmlSerializer(typeof(Process));}catch (Exception e){Con...

c#-使用BinaryFormatter序列化和反序列化List>【代码】

假设我有List<object> mainList = new List<object>();它包含List<string> stringList = new List<string(); List<CustomClass> custList = new List<CustomClass>(); mainList.Add(stringList); mainList.Add(custList);序列化Stream stream; BinaryFormatter formatter = new BinaryFormatter(); formatter.Serialize(stream, mainList);反序列化Stream stream = (Stream)o; BinaryFormatter formatter = new BinaryFormatter();...

c#-使用SOAP Edit序列化包含列表的类【代码】

所以我有一个包含floats []列表的类.除此字段外的所有内容均可序列化.列表的大小各不相同,但float []的大小不变.List<float[]> listOfStuff;我已经编写了一种使用Linq到XML编写文件的方法,但是我希望使用Soap或Binary格式化程序来完成这项工作.我在考虑是否要更改类,而不必更改所有读取和写入方法,如果需要,我可以使用二进制格式化程序对文件进行序列化.另外,它实际上是几行代码而不是很多行. 关于如何使用序列化为包含列表的对象编...

C#-反序列化ISO 8601日期【代码】

我有一个如下课程:public class ViewItem {[DataMember(Name = "title")]public string Title { get; set; }[DataMember(Name = "created_at")]public string CreatedAt { get; set; } }当我尝试将json字符串反序列化为对象时,我从没有获得CreatedAt字段的值.我的json字符串如下:[ { "created_at" : "2014-03-05T10:26:12Z" ,"title" : "task 4"} ,{ "created_at" : "2014-03-05T10:26:12Z" ,"title" : "task 5"} ]反序...

c#-在DateTime上进行Json.NET反序列化-错误的时间(-6小时)【代码】

我的应用程序来自客户端和服务器.客户端和服务器交换json数据.同一客户端和服务器上的时区(4).此数据类public class MyData() {public DateTime Start {get;set;} }在服务器上,我从数据库MS SQL中选择数据并提供给客户端.当我在客户端数据字段上反序列化时,“开始”已偏移-6小时.如何获得正确的时间?我可以使用JsonSerializerSettings在客户端上获得正确的时间吗?我试过了var jsonSerializerSettings = new JsonSerializerSettin...

序列化 - 相关标签