我的问题与Is it possible to get the type of an XML node as it was defined in XSD?
半关联...但这个问题没有得到解答,它以python为目标,而我对C#.Net解决方案很感兴趣。我的问题是:如何获得在XSD中定义的类型,表示为.Net中的类型?
背景: 如果它有帮助,我的目标是使用xpath在XML文档中找到一个部分,在支持的XSD中找到该部分的相应类型,最后使用该类型然后将该部分反序列化为.Net对象。
通常,如果我在编译时知道类型,我可以对xml进行反序列化,但在运行时,必须使用xpath查询推断类型。我认为这可以通过反射实现,但我也想知道.Net Framework中是否存在我可以利用的东西。
换句话说,我想做与此相反的事情:
private void ExtractXsdFromType(Type type, FileInfo xsd)
{
XmlReflectionImporter importer = new XmlReflectionImporter();
XmlTypeMapping mapping = importer.ImportTypeMapping(type);
}
...而不是传入一个类型来获取映射,我将传入一个字符串来获取类型。我希望这很清楚,但如果没有请求澄清,我会提供更多细节。
感谢您的体验!
答案 0 :(得分:0)
而不是传入一个类型来获取映射,我会传入一个字符串来获取类型。
给定合格的程序集名称,您可以使用Type
检索相应的Type.GetType()
对象。例如,Type.GetType("ReflectionTest.TestClass")
返回TestClass
命名空间中定义的类ReflectionTest
的类型。