dth*_*her 3 c# generics collections serialization
是否将任何.NET泛型集合标记为IXmlSerializable?我已经尝试了List <T>和Collection <T>,但都没有开箱即用.
在我推出自己的集合<T>,列出<T>或字典<T>类之前,我想我会检查微软是否已经包含了已经包含的内容.这似乎是基本的功能.
编辑:通过"滚动我自己"我的意思是创建一个继承自泛型集合类的类,并实现IXmlSerializable.这是一个例子:http://www.codeproject.com/KB/XML/IXmlSerializable.aspx.这是另一个例子:http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx.
我在一个方法中使用DataContractSerializer,其签名如下所示:
public static Stream GetXmlStream(IXmlSerializable item)
Run Code Online (Sandbox Code Playgroud)
问题是虽然.NET框架中有许多可序列化的类,但并非所有类都明确实现了IXmlSerializable接口.
没有要求将IXmlSerializable实现为 xml可序列化.
public class Foo
{
public List<string> Names { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
将xml序列化很好生成类似的东西:
<?xml version="1.0" encoding="utf-16"?>
<Foo
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Names>
<string>a</string>
<string>b</string>
<string>c</string>
</Names>
</Foo>
Run Code Online (Sandbox Code Playgroud)
而
public class Foo<T>
{
public List<T> Names { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
会产生
<?xml version="1.0" encoding="utf-16"?>
<FooOfString
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Names>
<string>a</string>
<string>b</string>
<string>c</string>
</Names>
</FooOfString>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3406 次 |
最近记录: |