0

我的问题是半相关的:是否可以获得在 XSD 中定义的 XML 节点的类型?

...但是这个问题没有得到回答,它针对 python,而我对 C#.Net 解决方案感兴趣。我的问题是:如何获得在 XSD 中定义的类型,在 .Net 中表示为类型?

背景:如果有帮助,我的目标是使用 xpath 在 XML 文档中定位一个部分,在支持的 XSD 中找到该部分的相应类型,最后使用该类型将该部分反序列化为一个 .Net 对象。

一般来说,如果我在编译时知道类型,我可以反序列化 xml,但在运行时,必须使用 xpath 查询来推断类型。我认为这可以使用反射来实现,但我也想知道 .Net 框架中是否已经存在我可以利用的东西。

换句话说,我想做与此相反的事情:

private void ExtractXsdFromType(Type type, FileInfo xsd)
{
    XmlReflectionImporter importer = new XmlReflectionImporter();
    XmlTypeMapping mapping = importer.ImportTypeMapping(type);
}

...与其传入一个类型来获取映射,我将传入一个字符串来获取类型。我希望这足够清楚,但如果没有,请要求澄清,我将提供更多细节。

感谢您的体验!

4

1 回答 1

0

我不是传入一个类型来获取映射,而是传入一个字符串来获取类型。

给定一个合格的程序集名称,您可以使用 检索相应的Type对象Type.GetType()。例如,返回命名空间中定义Type.GetType("ReflectionTest.TestClass")的类的类型。TestClassReflectionTest

于 2012-07-20T21:06:07.790 回答