Xml序列化自引用/循环引用问题1
1.定义类
public class Student
{
public int ID { get; set; }
public string Name { get; set; } //[XmlIgnore]
public Student StudentInfo { get; set; }
}
2.执行序列化操作,如果内部对象引用自己,xml序列化抛出异常“检测到循环引用”
Student stu = new Student();
stu.ID = ;
stu.Name = "张三";
//如果内部引用自己,Xml就会抛出异常
//序列化类型 Test.Student 的对象时检测到循环引用。
/*
* 解决方案1:在StudentInfo 添加 [XmlIgnore] ,序列化时忽略当前属性
*/
stu.StudentInfo = stu;
//如果内部引用不是自己,不会抛出异常
stu.StudentInfo = new Student()
{
ID = ,
Name = "李四"
};
XmlSerializer xmls = new XmlSerializer(stu.GetType());
string content;
using (MemoryStream ms = new MemoryStream())
{
xmls.Serialize(ms, stu);
ms.Position = ;
using (StreamReader reader = new StreamReader(ms))
{
content = reader.ReadToEnd();
}
}
Console.WriteLine(content);
如果内部对象不是引用的自己,则可以使用

Xml序列化自引用/循环引用问题1的更多相关文章
- Xml序列化自引用/循环引用问题2
1.类定义: public class Student { public int ID { get; set; } public string Name { get; set; } //[XmlIgn ...
- 解决MVC Json序列化的循环引用问题/EF Json序列化循引用问题---Newtonsoft.Json
1..Net开源Json序列化工具Newtonsoft.Json中提供了解决序列化的循环引用问题: 方式1:指定Json序列化配置为 ReferenceLoopHandling.Ignore 方式2: ...
- EntityFramework中Json序列化的循环引用问题解决--Newtonsoft.Json
1.在使用EF时,由于数据库主外键关联,将对象进行Json序列化时会遇到循环引用的问题 //EF 中由于数据库主外键关联,对象的序列化经常出现循环引用问题 //使用.Net 自带的序列化工具,序列化出 ...
- 一个C#序列化时循环引用的问题
以前一直没搞懂为什么C#在做对象序列化时(Json序列化,XML序列化等)有时候会出现循环引用的问题,下面写了个例子,类People有一个属性引用了类Child,而类Child也有一个属性引用了类Pe ...
- Wcf序列化的循环引用问题1
1.Wcf数据契约序列化,使用的类DataContractSerializer 默认如果类不指定[DataContract],则序列化类的所有字段,并且在出现循环引用的时候回抛出异常,服务终止 msd ...
- lua序列化(支持循环引用)
lua序列化 支持key类型为string, number 支持value类型为string, number, table, boolean 支持循环引用 支持加密序列化 支持loadstring反序 ...
- WebApi-JSON序列化循环引用
Overview 最近被序列化,循环引用的问题,让我浑身酸爽.遇到这种异常是在搭建WebApi的时候,当我返回Linq实例类集合的时候出现的. 下定决心要解决这个问题.循环引用引起的原因是: 比如说: ...
- 解决.Net MVC EntityFramework Json 序列化循环引用问题.
以前都是到处看博客,今天小菜也做点贡献,希望能帮到大家. 废话不多说,直接进入正题. 用过.net MVC的同学应该都被json序列化报循环引用错误这个问题骚扰过.网上有一些解决办法,但是都治标不治本 ...
- 解决ASP.NET MVC返回的JsonResult 中 日期类型数据格式问题,和返回的属性名称转为“驼峰命名法”和循环引用问题
DateTime类型数据格式问题 问题 在使用ASP.NET MVC 在写项目的时候发现,返回给前端的JSON数据,日期类型是 Date(121454578784541) 的格式,需要前端来转换一下才 ...
随机推荐
- layer弹出标签层tab
引入文件: <script type="text/javascript" src="layer/layer.min.js"></script& ...
- C语言 位操作
c语言位操作中需要注意有: 位操作只针对整型和字符型数据 在右移操作中:对无符号数和有符号中的正数补 0:符号数中的负数,取决于所使用的系统:补 0 的称为“逻辑右移”,补 1 的称为“算术右移”. ...
- codeforces 232D Fence
John Doe has a crooked fence, consisting of n rectangular planks, lined up from the left to the righ ...
- 搬瓦工搭建VPN
搬瓦工VPS的PPTP VPN搭建其实和上面都是很简单的,这个要用到上面的搬瓦工VPS控制面板. Root shell - advanced 下载 centos 6 一键安装包 wget --no-c ...
- Python使用Pygame.mixer播放音乐
Python使用Pygame.mixer播放音乐 frequency这里是调频率... 播放网络中的音频: #!/usr/bin/env python # -*- coding: utf-8 -*- ...
- Quantization Method
如上一篇Quantization所说,可以在编码端通过设置offset来调整量化后的值,从而趋向于期望的量化值,而且在逆量化公式可以看出offset值在逆量化的时候是不会用到的. 目前来说,确定off ...
- Intention Locks 意向锁
Intention Locks 意向锁 InnoDB 支持多颗粒度锁定允许row-level locks和锁整个表共存. 为了使锁在多个颗粒级别实现, 额外类型的锁被称为意向锁是被使用. . Inte ...
- 【HDOJ】5057 Argestes and Sequence
树状数组,其实很简单.只是MLE. #include <iostream> #include <cstdio> #include <cstring> using n ...
- 【翻译】Organizing ASP.NET MVC solutions 如何组织你的ASP.NET MVC解决方案
序言 时隔一年,弦哥重出江湖,对于我们学习.NET MVC那将有大大的好处,期待弦哥的重构系列.在弦哥与jerrychou的交流中提到了一篇文章http://lostechies.com/jimmyb ...
- 64位操作系统 注册 capicom.dll
把capicom.dll 放到c:\windows\syswow64目录 以管理员身份运行c:\windows\syswow64\cmd.exe 执行 regsvr32 capicom.dll ...