webrequest を介して一部の xml を逆シリアル化する必要があります。私のデシリアライザは、メッセージの内容をデシリアライズしませんが、エラーは出しません。2行目の名前空間参照を取り出すと、すべて機能します
以下の xml (秘密の業務内容を非表示にするために編集)
<?xml version="1.0" encoding="UTF-8"?>
<ns2:thingees xmlns:ns2="http://someurl.com">
<thing thing-code="KE">
<thingelement description="primary" thing-address="address24000" sequence="1"/>
<thingelement description="backup" thing-address="address5000" sequence="2"/>
</thing>
<thing thing-code="PI">
<thingelement description="primary" thing-address="address26000" sequence="1"/>
<thingelement description="backup" thing-address="address27000" sequence="2"/>
</thing>
</ns2:thingees>
私のクラスは以下のとおりです(秘密のビジネスのものを隠すために名前を変更しています)
[Serializable]
[XmlRoot("thingees", Namespace = "http://someurl.com")]
public class thingeeInfo
{
[XmlElementAttribute("thing")]
public oneThing[] Items {get; set;}
}
public partial class oneThing
{
[System.Xml.Serialization.XmlElementAttribute("thing-element")]
public ThingElement[] thingelement {get; set;}
[System.Xml.Serialization.XmlAttributeAttribute("thing-code")]
public string thingcode {get; set;}
}
public partial class ThingElement
{
[System.Xml.Serialization.XmlAttributeAttribute()]
public string description {get; set; }
[System.Xml.Serialization.XmlAttributeAttribute("thing-address")]
public string thingaddress {get; set; }
[System.Xml.Serialization.XmlAttributeAttribute()]
public string sequence {get; set; }
}
xml のルートにある名前空間参照を取り出すと、すべてがうまく逆シリアル化されます。- XMlRoot で名前空間参照を取り出します
エラーなしで逆シリアル化しますが、アイテムを埋めません。つまり、「アイテム」は null です。「もの」は入力されていません
xml で ns2 を参照する必要がありますか? もしそうなら、どのように?