SilverLightプロジェクトでFodyを使用して、プロパティの依存関係を自動生成しています。ただし、セッターにすでにRaisePropertyChanged
メソッド呼び出しが含まれている場合は機能しません。INotifyPropertyChangedを使用せずにWebサービス参照を生成するには?
回避策は、INotifyPropertyChanged
を使用せずにWebサービス参照コードを生成し、代わりに部分的な方法で実装することです。
INotifyPropertyChanged
なしでWebサービス参照コードを生成するにはどうすればよいですか?
私はWCFサービスを持っています。それをMaterialService.svcと呼ぶことにしましょう。それは、このようなものになります。私は、サービス参照としてサービスを追加し、クライアントコードを生成すると
[ServiceContract]
public interface IMaterialService
{
[OperationContract]
Material GetMaterial(int id);
}
[DataContract]
public class Material
{
[DataMember]
public int ID { get; set; }
[DataMember]
public string Name { get; set; }
}
を、すべてのクラスがINotifyPropertyChanged
を実装するために設定されている:
public partial class Material : object, System.ComponentModel.INotifyPropertyChanged {
private int IDField;
private string NameField;
[System.Runtime.Serialization.DataMemberAttribute()]
public int ID {
get {
return this.IDField;
}
set {
if ((this.IDField.Equals(value) != true)) {
this.IDField = value;
this.RaisePropertyChanged("ID");
}
}
}
[System.Runtime.Serialization.DataMemberAttribute()]
public System.Nullable<string> Name {
get {
return this.NameField;
}
set {
if ((this.NameField.Equals(value) != true)) {
this.NameField = value;
this.RaisePropertyChanged("Name");
}
}
}
}
は、どのように私はdoesnのクライアントコードを生成することができますINotifyPropertyChanged
を実装していませんか?
私はFodyと同じ問題を抱えている人のために、私はSimon Croppに連絡し、彼は既存のRaisePropertyChanged呼び出しをサポートする新しいバージョンを作成しました。知っている:) –