C# 如何在不更改InotifyProperty的情况下生成web服务引用?

C# 如何在不更改InotifyProperty的情况下生成web服务引用?,c#,.net,wcf,silverlight,inotifypropertychanged,C#,.net,Wcf,Silverlight,Inotifypropertychanged,我在SilverLight项目中使用自动生成属性依赖项。但是,如果setter已经包含RaisePropertyChanged方法调用,那么它就不起作用 一种解决方法是生成web服务引用代码,而不使用INotifyPropertyChanged,而是使用分部方法实现它 如何在没有INotifyPropertyChanged的情况下生成web服务引用代码 我有一个WCF服务,我们称之为MaterialService.svc。它看起来像这样: [服务合同] 公共接口IMaterialService

我在SilverLight项目中使用自动生成属性依赖项。但是,如果setter已经包含
RaisePropertyChanged
方法调用,那么它就不起作用

一种解决方法是生成web服务引用代码,而不使用
INotifyPropertyChanged
,而是使用分部方法实现它

如何在没有INotifyPropertyChanged的情况下生成web服务引用代码

我有一个WCF服务,我们称之为MaterialService.svc。它看起来像这样:

[服务合同]
公共接口IMaterialService
{
[经营合同]
物料获取物料(int id);
}
[数据合同]
公开课材料
{
[数据成员]
公共int ID{get;set;}
[数据成员]
公共字符串名称{get;set;}
}
当我将服务添加为服务引用并生成客户端代码时,每个类都设置为实现
INotifyPropertyChanged

公共部分类材质:对象,System.ComponentModel.INotifyPropertyChanged{
私人国际机场;
私有字符串名称字段;
[System.Runtime.Serialization.DataMemberAttribute()]
公共整数ID{
得到{
返回此.IDField;
}
设置{
if((此.IDField.Equals(value)!=true)){
this.IDField=值;
本.RaisePropertyChanged(“ID”);
}
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
公共系统。可为空的名称{
得到{
返回此.NameField;
}
设置{
if((this.NameField.Equals(value)!=true)){
this.NameField=值;
本.RaiseProperty变更(“名称”);
}
}
}
}

如何生成未实现INotifyPropertyChanged的客户端代码??

添加服务引用后,打开服务引用下的文件
reference.svcmap
(您可能需要启用“项目”菜单中的“显示所有文件”选项)。找到
元素,并将值更改为false。这将从生成的数据契约中删除
INotifyPropertyChanged

它可以工作,非常感谢:)对于任何与我有相同问题的人,我联系了Simon Cropp,他制作了一个新版本,支持现有的RaisePropertyChanged调用,因此也修复了问题,但知道这一点很好:)