[英]XML Serialize C#
我正在使用
List<EFacebook> facebooks = BFacebook.ReadFacebookFriends(user.EProviders
.Where(i => i.ProviderType == EProvider.EnumProviderType.Facebook)
.First().Token);
StringBuilder xml = new StringBuilder();
foreach (EFacebook i in facebooks)
{
xml.AppendFormat("<id>{0}</id>", i.id);
}
有人可以建议更好的代码将每个i.id
序列化为XML字符串吗?
编辑:facebook对象有近20个属性。 如果使用XmlSerializer
所有20个属性都将序列化为XML。 我只需要id
列。
您可能想看看.NET Framework中已经内置的XML序列化 。
您可以使用类似于以下内容的代码来序列化对象:
MySerializableClass myObject = new MySerializableClass();
// Insert code to set properties and fields of the object.
XmlSerializer mySerializer = new
XmlSerializer(typeof(MySerializableClass));
// To write to a file, create a StreamWriter object.
StreamWriter myWriter = new StreamWriter("myFileName.xml");
mySerializer.Serialize(myWriter, myObject);
myWriter.Close();
请参阅: 如何序列化
您可以使用XmlIgnore属性标记要忽略的属性,如下所示:
public class Group
{
// The XmlSerializer ignores this field.
[XmlIgnore]
public string Comment;
// The XmlSerializer serializes this field.
public string GroupName;
}
XmlSerializer xs = new XmlSerializer(typeof(int[]));
xs.Serialize(stream,facebooks.Select(x=>x.id).ToArray())
我会使用Linq To Xml来创建Xml树结构
参见示例: Linq To Xml
如果您只是将id
值保存到xml字符串中,那么我不会说您正在“序列化”对象。
每当使用XML时,使用XML库要比处理文本好得多。 一个明显的原因是它可以确保您的XML格式正确。
我会做这样的事情:
List<EFacebook> facebooks = GetFriends();
var facebookIds = facebooks.Select(f => new XElement("id", f.id));
var facebookXml = new XElement("facebookIds", facebookIds);
哪个会给你像XML
<facebookIds>
<id>1</id>
<id>2</id>
</facebookIds>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.