Linq-to-SQL 覆盖我的 OnSerializing 属性



My Code

partial class User
{
    [OnSerializing]
    public void ClearPassword()
    {
        Password = null;
    }
}

Linq-to-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;
    }
}

结果

无效属性。"Void ClearPassword()"和"Void OnSerializing(System.Runtime.Serialization.StreamingContext)' in type "AuthenticationManager.User" 有 'System.Runtime.Serialization.OnSerializingAttribute'.

现在,Microsoft的工程师是否为两个独立的代码块创造了一种方法,以便在序列化上触发一些相互独立的事件?特别是考虑到他们劫持这个事件来设置this.serializing = true的事实?

提前谢谢。

如果Password属性使用的是支持字段,则可以将其设置为 NonSerialized

  [XmlIgnore]
  [ScriptIgnore]
  public string Password { get { return _password;}  set { _password = value; } }
  [NonSerialized]
  private string _password;

相关内容

  • 没有找到相关文章

最新更新