4

WCF WebAPIを使用して、 WCFを使用して REST サービスを作成しています。POCO クラスをサービスから json/xml オブジェクトとして返しています。私の POCO クラスのほとんどには、ICollectionEF4.1 Code First の一部であるため s が含まれているため、エラーが発生します。

型のメンバーをシリアル化できません ... System.Collections.Generic.ICollection ... 型であるため - インターフェイスであるため

それを避けるために、XMLIgnore提案されています。また、WCF での JSON のカスタム シリアル化にはいくつかの問題があります。ScriptIgnore

誰かが同様の問題に遭遇し、シリアル化クラスを構成するためのより良い解決策または方法を持っている可能性があると思っただけですXMLIgnore

4

4 に答える 4

3

多くの場合、DTO または (ASP.NET MVC のビュー モデル) を使用して、ドメイン モデルから分離します。また、AutoMapper を使用して、ドメイン モデルと DTO 間のコード変換を最小限に抑えることができます。

于 2011-08-08T12:11:40.350 に答える
2

[XmlIgnore] と [IgnoreDataMember] を追加する必要があります。その後、プロパティは xml および json 応答に対して無視されます。

于 2011-10-13T11:09:37.797 に答える
1

そうですサンドロ、[IgnoreDataMember]そして[XmlIgnore]必要とされています。

もう少し説明: [IgnoreDataMember]は json シリアライゼーションでフィールドを [XmlIgnore]除外する必要があり、xml シリアライゼーションでフィールドを除外するには が必要です。

于 2011-11-29T11:56:59.250 に答える
0

WCF WebAPI [ScriptIgnore]または[JsonIgnore]が機能しておらず、効果がないことがわかりました。そのため、json 関連の REST API については ASP.NET MVC に戻ります。

更新[2012 年 7 月 24 日] この回答は古く、Microsfot WebAPI は長い道のりを歩んできました。この回答に頼る前に確認してください。

于 2011-08-06T04:47:10.590 に答える