【c# – DataContract无法序列化集合成员】教程文章相关的互联网学习教程文章

c# – 有效地序列化锯齿状字节数组【代码】

我有一个锯齿状数组DataMember返回字节[800] [10000] [1],转换为~8MB的数据.使用DataContractSerializer进行序列化时,二进制文件大小为120MB,文本大小为300MB.查看文本序列化,它表示它在每个字节值周围放置一个标记,以指示它的base64编码值等,这可能是此大小放大的原因. 什么是使用DataContractSerializer(或任何其他序列化程序)序列化大型锯齿斑点的有效方法 使用Text序列化时的片段XML输出:<a:ArrayOfbase64Binary><a:base64Bin...

实现PropertyChangedBase时c# – caliburn.micro序列化问题【代码】

我正在开发一个客户端/服务器数据驱动的应用程序,使用caliburn.micro作为前端,使用Asp.net WebApi 2作为后端.public class Person {public int Id {get;set;}public string FirstName{get;set;}... }该应用程序包含一个名为“Person”的类. “Person”对象被序列化(JSON)并使用简单的REST协议从客户端到服务器来回移动.解决方案正常运行没有任何问题. 问题: 我为“Person”设置了一个父类“PropertyChangedBase”,以实现NotifyOfP...

c# – 如何反序列化仅包含值的JSON数组?【代码】

我从Web功能获得此结果.["767,20150221122715,121053103,14573465,1,7,302", "767,20150221122756,121053165,14573375,1,0,302", "767,20150221122840,121053498,14572841,1,12,124"]通常Json有PropertyName:Value但是这有一个字符串数组,每个字符串都有以逗号分隔的值.我知道每个价值位置意味着什么. 我尝试使用JsonConvert.DeserializeObject但无法使其工作.string deserializedProduct = JsonConvert.DeserializeObject<string...

c# – 在不使用json.net创建包装类的情况下反序列化【代码】

我最近开始使用Json.net并将现有的反序列化器从JavaScript更改为Json.Net 在这样做时,我遇到了一个实现问题. 我在Json下面:string json = @"'Album':{'Name': 'Classical','Date': '2005-4-7T00:00:00' }";当我使用Json.net对它进行deSerializing时,我得到一个null响应:var a = JsonConvert.DeserializeObject<Album>(json);我寻求帮助,并发现要反序列化它,我需要创建一个包装类,Album必须是一个属性. 但是,我有很多这样的类来反...

c# – 在Web API控制器中接收Json反序列化对象作为字符串【代码】

以下是我在Ui的Json输入:{"data": [{"Id": 1}, {"Id": 2}, {"Id": 3}] }我可以在下面显示的对象结构中没有问题地收到它:public class TestController : ApiController{/// <summary>/// Http Get call to get the Terminal Business Entity Wrapper/// </summary>/// <param name="input"></param>/// <returns></returns>[HttpPost][Route("api/TestJsonInput")]public string TestJsonInput([FromBody] TestInput input){retur...

c# – 在反序列化之前不知道类型

是否可以反序列化(c#)一块xml,csv,json(无论它是什么),而不知道它的类型?但是要给一个对象(最终是正确的类型)?解决方法:对的,这是可能的. 序列化的XML / CSV / JSON数据必须包含标识符,以允许反序列化器知道要创建的对象类型,因为事先无法知道.因此,反序列化器可以构造新的对象实例,通常使用FactoryMethod设计模式. 反序列化比序列化更难.

c# – 是否存在OnDeserialized事件或类似事件,以便我可以确定某个类已被反序列化?【代码】

我的所有自定义实体集合都有一个基类,它的简单版本如下:[Serializable] public class CollectionBase<T> : List<T> where T : IEntity {public bool IsDirty {get;}public new void Add(T item){this.SetDirty();base.Add(item);item.MadeDirty += new EventHandler(item_MadeDirty);}// Other standard list methods overridden here...public void SetDirty() { } // Mark the collection as dirtyprivate void item_MadeDirty(...

c# – 如何确保T可以按固定的字节数进行序列化?【代码】

我正在写一个通用的DataStructure< T>它保留在磁盘上,我需要编写它,以确保T可以在固定的字节数中序列化.例如,应该接受int和char,但不应该使用string或int [].同样,带有字符串成员的结构是不可接受的,但是带有固定char数组的不安全结构是. 我可以使用reflection和sizeof在初始化程序中编写运行时测试来测试每个成员,但这看起来像是一个可怕的黑客.有没有有效的(相对)安全的方法来做到这一点?解决方法:没有办法静态支持只具有固定特...

c# – Json.Encode()是否使用JavaScriptSerializer类进行序列化【代码】

Json.Encode()Helper是否使用JavaScriptSerializer类将字符串编码为json? 我在使用Json.Encode(Model)时遇到循环引用异常,即使我正在序列化的类属性具有[ScriptIgnore]属性. 我唯一的猜测是,Json.Encode()助手可能不会使用JavaScriptSerializer序列化为json,但我无法在msdn上找到任何文档.@Html.Raw(Json.Encode(Model))以下是其中一个具有不应序列化的属性的模型的示例…using System.ComponentModel.DataAnnotations; using Sys...

C#如何在继承自DynamicObject的类上序列化(JSON,XML)常规属性【代码】

我试图序列化一个继承自DynamicObject的类的实例.我已经毫不费力地将动态属性序列化了(为简洁起见,这里没有演示),但“正常”属性似乎并没有成功.无论序列化类如何,我都会遇到同样的问题:它与JavaScriptSerializer,JsonConvert和XmlSerializer相同.public class MyDynamicClass : DynamicObject {public string MyNormalProperty { get; set; } }...MyDynamicClass instance = new MyDynamicClass() {MyNormalProperty = "Hello, w...

c# – 我可以使用流解压缩和反序列化文件吗?【代码】

我的应用程序使用Json.Net序列化对象,压缩生成的JSON,然后将其保存到文件中.此外,应用程序可以从其中一个文件加载对象.由于现有代码创建大字符串和字节数组的方式,这些对象的大小可能是几十Mb,我担心内存使用情况: – public void Save(MyClass myObject, string filename) {var json = JsonConvert.SerializeObject(myObject);var bytes = Compress(json);File.WriteAllBytes(filename, bytes); }public MyClass Load(string fil...

C#基础学习08(序列化和反序列化)

1.引用命名空间using System.Runtime.Serialization.Formatters.Binary;//引入命名空间 2.类必须是可序列化的[Serializable] //使此类可序列化 public class Person {private string name;public string Name{get { return name; }set { name = value; }}private string gender;public string Gender{get { return gender; }set { gender = value; }}private int age;public int Age{get { return age; }set { age = value; }} ...

如何通过c#中的XML序列化输出十六进制数?【代码】

我有一些类和结构,我使用XML序列化来保存和调用数据,但我想要的一个功能是以十六进制表示形式输出整数.是否有任何属性可以挂在这些结构上以实现这一目标?最佳答案:有一些代码味道,但以下将起作用:public class ViewAsHex {[XmlIgnore]public int Value { get; set; }[XmlElement(ElementName="Value")]public string HexValue{get{// convert int to hex representationreturn Value.ToString("x");}set{// convert hex represen...

C#网络编程学习(7)---序列化和反序列化

1、什么是序列化和反序列化 当客户端和服务器进行远程连接时,互相可以发送各种类型的数据。但都要先把这些对象转换为字节序列,才能在网络上进行传输。 序列化:就是发送方 把对象转换为字节序列的过程。 反序列化:就是接收方 把字节序列转换为对象的过程。 2、BinaryFormatter BinaryFormatter以二进制格式序列化和反序列化对象。 属性: Serializable:表示可以被序列化 NonSerializable:屏蔽序列化 方法: binaryFormatter....

C# XML 序列化帮助类【代码】

/// <summary>/// Xml helper class/// </summary>public static class XmlHelper{#region 序列化/// <summary>/// XML Serialize/// </summary>/// <param name="obj"></param>/// <param name="encoding"></param>/// <returns></returns>public static string Serialize<T>(T obj, Encoding encoding = null){return Serialize(obj, typeof(T), encoding);}/// <summary>/// XML Serialize/// </summary>/// <param...

序列化 - 相关标签