读书人

关于序列化的简单有关问题!

发布时间: 2013-07-09 09:50:48 作者: rapoo

关于序列化的简单问题!!
小弟想把一些xml序列化成字符串


MemoryStream ms = new MemoryStream();
XmlTextWriter xmlWriter = new XmlTextWriter(ms, Encoding.UTF8);
XmlSerializer formatter = new XmlSerializer(typeof(OBj));
formatter.Serialize(xmlWriter, parameters); // OBj parameters; 可xml时 出错
xmlWriter.Close();
string info = Encoding.UTF8.GetString(ms.ToArray());

滴二个问题!!

XmlSerializer xmlSrlzr = new XmlSerializer(typeof(Domain.SoulBaseInfo));
MemoryStream ms = new MemoryStream();
XmlTextWriter xmlWriter = new XmlTextWriter(ms, Encoding.UTF8);
XmlSerializer formatter = new XmlSerializer(typeof(Domain.SoulBaseInfo));
formatter.Serialize(xmlWriter, baseInfo);
xmlWriter.Close();
string info = Encoding.UTF8.GetString(ms.ToArray());
info = info.Replace("<?xml version=\"1.0\" encoding=\"utf-8\"?>", "\r\a"); //删除第一行

序列化后为

<?xml version="1.0" encoding="utf-8" ?> //这行不要 但是要是像上面代码中删除 就会提示 xml顶层无效。。原来用另一个方法的时候也没有这行 也没提示有错误 请问这行怎么删?
- <SoulBaseInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.openxmlformats.org/2011/BaseInfo">
<ID>7b24ed37-86e6-4ee1-b0ef-39d9c09738e9</ID>
<InstanceID>7b24ed37-86e6-4ee1-b0ef-39d9c09738e9</InstanceID>
<Name>7b24ed37-86e6-4ee1-b0ef-39d9c09738e9</Name>
<Version>1.0.0.0</Version>
<Path />
<Description />


<Author />
<TargetHost>Excel</TargetHost>
<RobotType>Office</RobotType>
<Tag xsi:type="xsd:string" />
<Icon />
<ExecuteType>Execute</ExecuteType>
</SoulBaseInfo>

[解决办法]
<?xml version="1.0" encoding="utf-8" ?> 这行必须有吧,XML的标准……
[解决办法]
1年了。。。。
[解决办法]
呵呵,再等一年。。。
[解决办法]
天,这坟挖的。解决了吗?
[解决办法]
希望这个文章可以帮助你解决:
http://www.cnblogs.com/solan/archive/2012/08/31/CSharp14.html

读书人网 >C#

热点推荐