マイコード
partial class User
{
[OnSerializing]
public void ClearPassword()
{
Password = null;
}
}
Linq から SQL へ
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.[User]")]
[global::System.Runtime.Serialization.DataContractAttribute()]
public partial class User : INotifyPropertyChanging, INotifyPropertyChanged
{
[global::System.Runtime.Serialization.OnSerializingAttribute()]
[global::System.ComponentModel.EditorBrowsableAttribute(EditorBrowsableState.Never)]
public void OnSerializing(StreamingContext context)
{
this.serializing = true;
}
}
結果
属性が無効です。タイプ「AuthenticationManager.User」の「Void ClearPassword()」と「Void OnSerializing(System.Runtime.Serialization.StreamingContext)」の両方に「System.Runtime.Serialization.OnSerializingAttribute」があります。
さて、Microsoft のエンジニアは、2 つの別々のコード ブロックが互いに独立してシリアル化でいくつかのイベントを発生させる方法を作成したのでしょうか? 特に、彼らがこのイベントをハイジャックして設定するという事実を考えるとthis.serializing = true
?
前もって感謝します。