2011-07-05 14 views
6

私は一部のWCFサービスを作成しており、一部のユーザーはPrism Appsです。WCF DataContractsでINotifyPropertyChanged

DataContractクラスをクライアントサイドクラスにコピーする必要がないように、契約でINotifyPropertyChangedをサポートしたいと考えています。

しかし、私はいくつかのクライアントがMVC3クライアントです。

データ契約にINotifyPropertyChangedサポートを追加していますか?

また、自分のDataContractsを自分のEntity Framework db接続からのPOCOオブジェクトにする予定です。 INotifyPropertyChangedはそれを台無しにするでしょうか?

または、WPFのものだけがINotifyPropertyChangedで、他のアプリケーションは気にしませんか?

答えて

9

または、INotifyPropertyChangedはWPFだけですが、他のアプリケーションは気にしません。

INotifyPropertyChangedは、あなたのエンティティに何も邪魔することなく実装できる単なるインターフェイスです。これはWPFとSilverlightでプライマリで使用され、それを使用しない他のテクノロジには影響しません。したがって、WCFデータコントラクトに実装する際に問題はありません。このWCFサービスから厳密に型指定されたクライアントプロキシを生成すると(svcutil.exeまたはAdd Service Referenceを使用して)、結果のエンティティはこのインターフェイスを実装しません。彼らはPOCOsになります。

+3

WCFのadd ref設定とsvcutil.exeにINotifyPropertyChangedを実装するクラスを生成するオプションがあると思います。 – NathanAW

+3

また、プロジェクトから「サービス参照の追加」オプションを使用すると、生成されたコードは自動的にDataContractsの 'INotifyPropertyChanged'インタフェースを実装します。 –

1

もう1つの方法は、WPFアプリケーションでMVVMを使用することです。 DataContractはモデル(M)になり、WPFアプリケーションの開発者はViewModelを作成する必要があります。

ViewModelはINotifyPropertyChangedを実装し、モデルからデータをロードします。

関連する問題