我的最后一个问题是关于将对象的字符串表示形式序列化为 XML https://stackoverflow.com/questions/1138414/can-i-serialize-xml-straight-to-a-string-instead-of-a-stream-with-c。其中一位响应者编写了一个扩展方法来封装序列化过程。
我现在的问题是,当传递一个字符串时,如何使用扩展方法返回一个字符串数组IEnumerable<T>
对象,其中每个string
数组中将是单独序列化的元素IEnumerable<T>
.
提前致谢!
回答您接下来的几个问题...
new XElement("people", myPeople.ToXElements());
public static class XmlTools
{
public static XElement ToXElement<T>(this T input)
{
return XElement.Parse(input.ToXmlString());
}
public static IEnumerable<XElement> ToXElements<T>(this IEnumerable<T> input)
{
foreach (var item in input)
yield return input.ToXElement();
}
public static IEnumerable<string> ToXmlString<T>(this IEnumerable<T> input)
{
foreach (var item in input)
yield return item.ToXmlString();
}
public static string ToXmlString<T>(this T input)
{
using (var writer = new StringWriter())
{
input.ToXml(writer);
return writer.ToString();
}
}
public static void ToXml<T>(this T objectToSerialize, Stream stream)
{
new XmlSerializer(typeof(T)).Serialize(stream, objectToSerialize);
}
public static void ToXml<T>(this T objectToSerialize, StringWriter writer)
{
new XmlSerializer(typeof(T)).Serialize(writer, objectToSerialize);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)