我的問題是半有關: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);
}
...在那裏,而不是一個類型的傳遞得到映射,我會在一個字符串傳遞給獲得類型。我希望這一點很清楚,但如果沒有請澄清,我會提供更多細節。
感謝您的體驗!