Web サービス リクエストから次の XML が送られてきます。
<Resource>
<Create>
<Name />
<Reference />
...
</Create>
</Resource>
ただし、次のこともできます。
<Resource>
<Delete>
<Name />
<Reference />
...
</Delete>
</Resource>
次のように、操作と呼ばれる基本クラスがあります。
[XmlInclude(typeof(Create))]
[XmlInclude(typeof(Delete))]
public abstract class Operation
{
protected string Name {get; set;}
protected string Reference {get; set;}
...
}
Create と Delete の両方のクラスが継承しResource
、プロパティを含むクラスが呼び出されOperation
ます。
public class Resource
{
public Operation {get; set;}
}
XML をクラスの正しい具象実装にデシリアライズしたいと思いますOperation
。
私が試してみました
using (var reader = XmlReader.Create(new StringReader(xmlData)))
{
return (T)new XmlSerializer(typeof(T)).Deserialize(reader);
}
whereT
はタイプですResource
が、役に立ちません (Operation
プロパティは alwaysnull
です)。誰かが私を正しい方向に向けることができますか?