Tag: 序列化

如何序列化List <List >?

框架是c#.net 4.6.2 我正在从XML代码生成自动XML类 当我自动生成时,它会自动转换为Array[][] 但我想用它作为List<List> 我确信我从Array到List的对话会导致一些序列化错误。 我认为这是关于获取和设置function。 所以我需要你的帮助来解决这个问题 这里是我编辑>粘贴特殊>粘贴XML作为类时自动生成的代码片段 /// [System.SerializableAttribute()] [System.ComponentModel.DesignerCategoryAttribute(“code”)] [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)] public partial class OxFordDefinition_perGroup { private string _GroupDescField; private string _GroupSenseField; private string _GroupGrammerField; private OxFordDefinition_perGroup_perMainExample_perSubExample[][] _perMainExampleField; /// public string _GroupDesc { get { return this._GroupDescField; } set { this._GroupDescField = value; } } /// public string _GroupSense { get […]

在XML文件中序列化和存储图像

有一点问题。 我有一个程序,可以构建一个可观察的用户集合。 用户有名字,姓氏和图像。 我可以将用户添加到observable集合中,但我也想保存集合并在每次重新打开程序时加载它。 我的问题是,虽然保存名字和姓氏相当容易,但编写者无法将图像写入xml文件。 有没有办法解决? 这是我到目前为止所拥有的: 可观察的集合: ObservableCollection ProfileList = new ObservableCollection(); 有问题的作家: XmlSerializer xs = new XmlSerializer(typeof(ObservableCollection)); using (StreamWriter wr = new StreamWriter(“vendors.xml”)) //Data/customers.xml { xs.Serialize(wr, ProfileList); } 有任何想法吗? 如果确实存在写入图像的解决方案,是否有可行的方法再次读出它?

在序列化为JSON时获取OutOfMemoryException?

我正在序列化,一个MultiDictionary http://powercollections.codeplex.com/给json。 它有618个元素,其元素是深层嵌套的,即单个Object可能有几个类似于字典的对象。 我正在使用JSON.Net String json = JsonConvert.SerializeObject(json, Newtonsoft.Json.Formatting.Indented); 我错过了什么? 更多信息: – 这工作正常,直到我使用动态,我不得不切换到MultiDictionary允许同名的多个属性。 它适用于大多数情况,只有当项目数量很大时才会中断。 更新: – 我已经能够控制内存消耗,但减少了一些递归添加到每个元素的元素。

使用多个元素属性反序列化XML文件 – 属性不反序列化

使用C#.Net 4 – XML示例(Real示例有6个属性) 25 对于我的class级定义,我有以下内容: public class TestXML() { public TestXML() {} public int TestElement {get; set;} [XmlAttribute] public string attr1 {get; set;} [XmlAttribute] public string attr2 {get; set;} [XmlIgnore] public DateTime DateAdded {get; set;} [XmlAttribute(“DateAdded”)] public string dateadded { get{ return (DateAdded == null ? “” : DateAdded.ToString();} set{ if(!value.Equals(“”)) DateAdded = DateTime.Parse(value);} […]

使用JSON.Net在Dictionary中复杂类型的特定于用法的序列化

我上课了 public class MyValue { public String Prop1 { get; set; } public String Prop2 { get; set; } } 我用它作为普通属性的类型以及字典键。 我需要的是这样一种方式,当这个类被用作属性时,它被序列化为 {“Prop1″:”foo”,”Prop2″:”bar”} 但是当它用作Dictionary键时,它的序列化方式是JSON.Net能够正确地反序列化它。 在向MyValue添加ToString()方法时,我能够创建一个允许用作Dictionary键的文本表示(非JSON),但不幸的是,我之后无法反序列化它。 即使为MyValue添加JsonConverter也无济于事,因为它似乎无法将非JSON作为源格式处理(另外,当序列化为属性时,它是IS json,因此转换器需要以某种方式处理它们)。

Json.net实现IEnumerable 的自定义集合的序列化

我有一个实现IEnumerable的集合类,我无法反序列化相同的序列化版本。 我正在使用Json.net v 4.0.2.13623 这是我的集合类的简化版本,它说明了我的问题 public class MyType { public int Number { get; private set; } public MyType(int number) { this.Number = number; } } public class MyTypes : IEnumerable { private readonly Dictionary c_index; public MyTypes(IEnumerable seed) { this.c_index = seed.ToDictionary(item => item.Number); } public IEnumerator GetEnumerator() { return this.c_index.Values.GetEnumerator(); } IEnumerator IEnumerable.GetEnumerator() […]

忽略Json.NET序列化中的基类属性

我有以下类结构: [JsonObject] public class Polygon : IEnumerable { public List Vertices { get; set; } public AxisAlignedRectangle Envelope { get; set; } } public class AxisAlignedRectangle : Polygon { public double Left { get; set; } … } 我正在序列化Polygon类,但是当我这样做时,我得到一个JsonSerializationException ,消息“为属性’Envelope’检测到自引用循环’,类型为’MyNamespace.AxisAlignedRectangle’。” 如果我将[JsonObject(IsReference = true)] ( 如此处所述 )添加到AxisAlignedRectangle,代码运行正常,但我在每个AxisAlignedRectangle实例中得到一个自动分配的$ id字段,并在该实例重新启动时得到一个$ ref字段参考的。 例如,当我序列化多边形时,我得到: { Vertices: [ … ], Envelope: […]

如何让newtonsoft反序列化yes和no to boolean

注意:我已在此Feed的底部提供了解决方案。 我有一个C#Win 8应用程序,我正在对一些看起来像这样的json进行反序列化: { ‘Unit’: [ { ‘name’:’House 123′, isAvailable:’no’ }, { ‘name’:’House 456′, isAvailable:’yes’ }] } 进入使用此接口的类: public interface IUnit { string Name { get; } bool isAvailable { get; } } 但是牛顿软件引发了一个错误: 解析值时遇到意外的字符:n。 路径’单位[0] .isAvailable,第1行,第42位。 有没有办法根据生成的对象属性类型bool扩展Newtonsoft来解析yes / no或1/0? 现在它只适用于真/假。 类的自定义转换器上有几个post,但不是像bool这样的原始类型。 有什么建议?

没有键/值文本的POST JSON字典

我有一个类似这样的WCF端点: [OperationContract] [WebInvoke(Method = “POST”, BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json, UriTemplate = “”)] Stream DoWork(Dictionary items); 为了将任何内容传递给我的服务,我必须像这样构建我的JSON: {“items”:[{“Key”:”random1″,”Value”:”value1″}, {“Key”:”random2″,”Value”:”value2″}]} 我真正希望它看起来像这样: {“items”:{“random1″:”value1″,”random2″:”value2”}} 有没有办法实现这个目标?

C#memcpy等价

我有2个相同类型的对象,我想浅一个状态到另一个。 在C ++中,我有memcpy,这很棒。 我怎么能在C#中做到这一点? MemberwiseClone()不够好,因为它创建并返回一个新对象,我喜欢复制到现有对象。 我想过使用reflection,但我担心它对于生产代码来说太慢了。 我还想过使用其中一个.Net序列化程序,但我认为它们也创建对象而不是设置现有的对象。 我的用例: 我有一个模板对象(类不是struct),需要通过其中一个实例(由此模板构成的对象)进行更新 有任何想法吗?