0
我正在閱讀編程實體框架4.0和我在POCO & WCF章節。WCF服務的POCO類 - 代理生成器如何工作/互操作性
生成代理類後,我瞥了一眼生成的代碼:
public partial class StateObject : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
/* ........... */
[System.Runtime.Serialization.DataMemberAttribute()]
public ConsoleApplicationPOCO.POCOCustomerService.State State {
get {
return this.StateField;
}
set {
if ((this.StateField.Equals(value) != true)) {
this.StateField = value;
this.RaisePropertyChanged("State");
}
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
而一些問題激起我的頭:
- 如何代碼生成器知道如何實現setter方法,特別是呼叫RaisePropertyChanged方法和如果陳述
- 如何發電機知道如何im Plement 保護無效RaisePropertyChanged(字符串propertyName)
- 作者說這個解決方案可以用於不使用.NET的客戶端。怎麼來的,如果我們仍然依靠INotifyPropertyChanged的和IExtensibleDataObject