Joh*_*ski 2 c# xml-serialization
我的最后一个问题是将序列化的对象的字符串表示形式化为XML.其中一个响应者编写了一个扩展方法来封装序列化过程.
我现在的问题是,当传递一个IEnumerable<T>对象时,如何使用扩展方法返回一个字符串数组,其中string数组中的每个元素都是一个单独的序列化元素IEnumerable<T>.
提前致谢!
回答你接下来的几个问题......
new XElement("people", myPeople.ToXElements());
Run Code Online (Sandbox Code Playgroud)
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);
}
}
Run Code Online (Sandbox Code Playgroud)
使用链接中的代码示例,您可以添加这样的另一个方法或使用ToArray()方法将它们转换为数组.
public static class XmlTools
{
public static IEnumerable<string> ToXmlString<T>(this IEnumerable<T> inputs)
{
return inputs.Select(pArg => pArg.ToXmlString());
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5062 次 |
| 最近记录: |