我的问题是半有关:Is it possible to get the type of an XML node as it was defined in XSD?在运行时获得来自XSD类型
...但这个问题不好回答,它的目标蟒蛇,而我感兴趣的是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);
}
...在那里,而不是一个类型的传递得到映射,我会在一个字符串传递给获得类型。我希望这一点很清楚,但如果没有请澄清,我会提供更多细节。
感谢您的体验!