【发布时间】:2011-11-28 11:38:14
【问题描述】:
我正在使用 XmlSerializer,想知道是否有任何方法,使用覆盖或类似的东西来让 XmlSerializer 输出某些节点的类型。
我的问题是我序列化了一个字节数组。
class MyClass {
public string Name { get; set; }
public byte[] Bytes { get; set; }
}
我在通用服务中使用 xml。 该服务将 xml 收集为 .
<MyClass>
<Name>Test</Name>
<Bytes>U2NhcnkgQnVnZ2Vy</Bytes>
</MyClass>
有没有办法在运行时生成 xsd,或者以某种方式输出类似的东西。
我无法更改我正在序列化的类,但我可以将覆盖应用到序列化程序或以其他方式控制序列化。
<Bytes xsi:type='BinaryOfSomeKind'>BlahBlah</Bytes>
我需要知道数据是二进制的。
谢谢
克雷格。
【问题讨论】:
-
我不知道我是否正确理解了您的问题。您是否使用始终具有相同结构但元素类型可能不同的 XML?
-
我正在将一个类转换为 xml。该类由第三方提供。我正在接受 xml 并对内容进行索引。我需要知道哪些字段是二进制的。如果有一种简单的方法可以生成 xsd,我也可以接受。我可以提供代码来生成 xsd。也许这是一个愚蠢的问题。
-
如果您的类是由第三方提供的,那么您就知道您的属性和属性类型,并且可以从中推断出您的 XML。您甚至可以手动为其创建 XSD。
-
我想我会手动创建一个xsd。我希望已经有一个类可以创建 xsd。我会手动完成。如果你回答这个问题,我会标记它,因为这是尽可能接近的。
标签: c# binary xmlserializer