ユーザーがメタデータを投稿できるようにする ASP.NET Web API サービスを開発しています。
ユーザーが投稿するデータ コントラクトの 1 つで、ユーザーは独自のカスタム メタデータを XML 形式で投稿できるはずです。これは例です:
<Delivery> <Type>Direct</Type> <Time>12:00:01</Time> <Format>Segmented</Format> <CustomMetadata> <ClientReference>R46375683</ClientReference> <Contact>Me@There.com</Contact> </CustomMetadata> </Delivery>
ただし、適切に逆シリアル化するデータ コントラクトを作成するのに問題があります。CustomMetadata ノードの場合、次のものがあります。
[DataMember(EmitDefaultValue=false)]
public XmlNode CustomMetadata { get; set; }
逆シリアル化されると、例外が発生します。
「コレクション型 'System.Xml.XmlNode' は、型 'System.Object' のパラメーターを持つ有効な Add メソッドがないため、逆シリアル化できません。」
XmlNode に何かを「追加」しようとしている理由が完全にはわかりませんが、何らかの理由で失敗しています。別の型に逆シリアル化するなど、この種のことを行うための代替手段はありますか? 文字列にデシリアライズしようとしましたが、例外も発生しました。