2011-07-05 39 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并将从模型中加载其数据。