2017-05-15 19 views
0

xmlrootの要素名の値、名前空間の値、および各xml属性の属性名を取得するために、xmlSerializer.mapping(ロックされた属性)を抽出する方法?クラスからのXmlRoot情報の抽出

ModelInfo mi = new ModelInfo {ModelName = "Andrea", ModelAge = 23};  
var xs = new XmlSerializer(mi.GetType()); 

[XmlRoot(ElementName = "Model", Namespace = "http://ws/")] 
public class ModelInfo 
{ 
    [XmlAttribute("name")] 
    public string ModelName{ get; set; } 

    [XmlAttribute("age")] 
    public string ModelAge{ get; set; } 
} 

答えて

0

XmlSerializerインスタンスから取得することは不可能だと思います。

しかし、あなたはこのようにそれを得ることができます。

ModelInfo mi = new ModelInfo { ModelName = "Andrea", ModelAge = 23 }; 

var xmlRoot = mi.GetType().GetCustomAttribute<XmlRootAttribute>(); 

if (xmlRoot != null) 
{ 
    Console.WriteLine(xmlRoot.ElementName); 
    Console.WriteLine(xmlRoot.Namespace); 
} 
関連する問題