C#WCFデータ契約パートクラス - 2番目の部分クラスの新しいフィールドがピックアップされていません

StackOverflow https://stackoverflow.com/questions/4386677

質問

データ契約がいくつかあるWCFサービスがあります。私はWeb Service Software Factoryを使用しています。これは、デザイナーを使用してすべてのメッセージとデータ、その他の契約を作成し、部分的なクラスとして作成します。コードが再生されると、クラスが再作成されます。

using WcfSerialization = global::System.Runtime.Serialization;

[WcfSerialization::CollectionDataContract(Namespace = "urn:CAEService.DataContracts", ItemName = "SecurityItemCollection")]
public partial class SecurityItemCollection : System.Collections.Generic.List<SecurityItem>
{
}

データ契約は、正常に動作していたカスタムクラスの汎用リストです。ただし、このクラスにプロパティを追加したいので、同じ名前空間にこの部分クラスを追加しました。

public partial class SecurityItemCollection
{
    public int TotalRecords { get; set; }
}

これはサービス側で正常に動作しているようですが、クライアントからサービスリファレンスをコンパイルして更新すると、クラスには新しいプロパティがありません。財産。なぜこれがなぜなのか知っていますか?

ティア

編集:わかりました、これは正式に私を運転しています。私が見ることができる唯一のことは、それがDataContractの代わりにCollectionDatacontract属性を使用していることです。これにより、クラス内のデータメンバーがシリアル化されることはありませんか?なぜそうなるのでしょうか?それはサービス側で正常に動作しています - 私は問題を問題なく見て、埋めることができます。ただし、クライアントのサービス紹介を更新すると、データメンバーのないColelctionクラスだけがありません。

役に立ちましたか?

解決 2

多くの検索の後、私は最終的に、これがCollectionDatacontractがデータメンバーを持たないためにマークされたクラスを許可されていないことを知りました。なぜこれが私にはわからないのですが、数時間と大きな頭痛がします。以下のリンクを参照してください:

WCF CollectionDataContractおよびDataMember

他のヒント

DataMember属性をTotalRecordsプロパティに追加してみてください

私はこれが古いことを知っていますが、このテーマを検索したときに現れ続けました。プロパティに「DatamemberTtribute」属性を追加することで、これを機能させることができました。以下はコードの例です。

public partial class SecurityItemCollection
{
    [global::System.Runtime.Serialization.DataMemberAttribute()]
    public int TotalRecords { get; set; }

}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top