有人能告诉我 XmlSchemaType 和 XmlQualifiedName 类之间的区别。我有点困惑何时选择哪个班级。实际上我正在为我的类使用 IXmlSerializable 接口并为此指定模式我使用 XmlSchemaProviderAttribute 并指定可以返回 XmlSchemaType 的函数或者的 XmlQualifiedName 即可。两者都工作正常,我成功生成代理。但无法找到合并的分析,哪个是在哪个条件下使用。
根据微软
XmlSchemaType类: 所有简单类型和复杂类型的基类。
XmlQualifiedName类: 表示XML限定名称。
但我无法理解这两者之间的确切区别。
答案 0 :(得分:0)
在谷歌和阅读一些文章后,我终于找到了这两者之间的区别,并了解在哪里选择什么?
有3种不同类型可以实现 IXmlSerializable接口
对于内容类型,我们需要使用XmlQualifiedName类作为返回参数(在XmlSchemaProvider中指定方法名称),这将要求XSD的主根元素是复杂类型。
对于元素类型,我们需要使用XmlSchemaType类。您可以在此处指定XSD中的任何根元素。
对于Legacy DataSet类型,我们不使用XmlSchemaProvider属性。相反,它们依赖于GetSchema方法生成Schema。
我从以下MSDN链接中找到了所有这些有用的信息。必须阅读一篇文章,以便更好地理解Xml序列化在WCF中的工作原理。