C I次のXMLがあります問題は構造をオブジェクトに#
<Root>
<ProcessingUnit>Lifestyle</ProcessingUnit>
<ProcessingData>
<ProcessType>Product</ProcessType>
<ProcessAction>Create</ProcessAction>
<Id>7</Id>
</ProcessingData>
</Root>
と私、私は次の操作を行うデシリアライズすると、次のオブジェクト構造
[XmlRoot("Root")]
public class XmlRoot
{
ProcessingUnit ProcessingUnit { get; set; }
[XmlElement("ProcessingData")]
ProcessingData ProcessingData { get; set; }
}
public class ProcessingData
{
public ProcessType ProcessType { get; set; }
public ProcessAction ProcessAction { get; set; }
public int Id { get; set; }
}
にあります
XmlSerializer _serializer = new XmlSerializer(typeof(XmlRoot));
using (var reader = new StringReader(stringtest))
{
var tradeData = (XmlRoot)_serializer.Deserialize(reader);
}
enumsにデシリアライズすると、正しく処理されますが、processingUnitは正しくデシリアライズされますが、プロパティーProcessingData
はnull
です。
私は多くの異なるxml属性でデコレートしようとしましたが、なぜnull値を取得するのかわかりません。
EDIT: stringtest変数が値ました:
var stringtest =
"<Root><ProcessingUnit>Lifestyle</ProcessingUnit><ProcessingData><ProcessType>Product</ProcessType><ProcessAction>Create</ProcessAction><Id>7</Id></ProcessingData></Root>";
列挙型は次のようになります。
public enum ProcessType
{
[XmlEnum(Name = "Product")]
Product,
[XmlEnum(Name = "Category")]
Category,
}
public enum ProcessAction
{
[XmlEnum(Name = "Create")]
Create,
[XmlEnum(Name = "Delete")]
Delete,
[XmlEnum(Name = "Update")]
Update,
}
public enum ProcessingUnit
{
[XmlEnum(Name = "LifeStyle")]
LifeStyle
}
よろしいですでなければなりませんあなたの 'stringtest'には実際のXMLが入っていますか?私はあなたが提供したコードに何らかの誤りを見ることができません。 – HimBromBeere
シリアライズでは、シリアライズ/デシリアライズされるオブジェクトのためのパラメトリックコンストラクタが必要です。 ProcessingActionとProcessingTypeがこれらを提供していると確信していますか? – Jonas
返信用Thansk、編集: – Diemauerdk