2012-06-26 28 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的類型。