2012-06-26 29 views
0

我的问题是半有关: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); 
} 

...在那里,而不是一个类型的传递得到映射,我会在一个字符串传递给获得类型。我希望这一点很清楚,但如果没有请澄清,我会提供更多细节。

感谢您的体验!

回答

0

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

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