2011-07-05 42 views
6

我正在製作一些WCF服務,並且一些消費者是Prism應用程序。WCF DataContracts中的INotifyPropertyChanged

爲避免必須將DataContract類複製到客戶端類,他們希望合同支持INotifyPropertyChanged。

但是,我有一些客戶端是MVC3客戶端。

是否將INotifyPropertyChanged支持添加到要將它們混淆的數據合約中?

此外,我打算讓我的DataContracts也是我的實體框架數據庫連接的POCO對象。 INotifyPropertyChanged會搞砸了嗎?

或者INotifyPropertyChanged只是一個WPF的東西,其他應用程序不會在乎它嗎?

回答

9

或者INotifyPropertyChanged只是一個WPF的東西,其他應用程序不會在乎它嗎?

INotifyPropertyChanged只是一個接口,你可以在你的實體上實現而不會搞亂任何東西。它主要用於WPF和Silverlight,它不會影響其他不使用它的技術。因此,在WCF數據合同中實施它不應該有任何問題。雖然請注意,當您通過此WCF服務(使用svcutil.exe或Add Service Reference)生成強類型客戶端代理時,生成的實體將不會實現此接口。他們將是POCO。

+3

我相信在WCF add ref設置和svcutil.exe中有一個選項可以讓你生成實現INotifyPropertyChanged的類。 – NathanAW

+3

此外,如果通過項目使用「添加服務引用」選項,則生成的代碼會自動在DataContracts上實現「INotifyPropertyChanged」接口。 –

1

另一種選擇是在WPF應用程序中使用MVVM。 DataContract將是模型(M),WPF應用程序的開發人員將不得不創建ViewModel。

ViewModel必須實現INotifyPropertyChanged並將從模型中加載其數據。