有没有使用面向方面编程注入重复代码的替代方法.
假设我们有一个包含许多属性的类,如果属性更改了它的值,我们想记录它.
假设我们有一个包含许多属性的类,如果属性更改了它的值,我们想记录它.
class Person { public string Name { get{return name;} set { name = value; LogPropertyChanged("Name"); } } public int Age { get{return age;} set { age = value; LogPropertyChanged("Age"); } } }
如何在不使用面向方面编程的情况下摆脱安全检查,日志记录等类似的重复代码.
解决方法
你可以随时做这样的事情
a)在对象的某个父类上
protected void SetProperty<T>(Expression<Func<T>> exp,T value) { MemberExpression body = (MemberExpression)exp.Body; //set the actual value (body.Member as FieldInfo).SetValue(this,value); //do some logging,locking,etc. with the field name string fieldName = body.Member.Name; }
b)在你的物体上
private int age; public int Age { get { return age; } set { SetProperty(() => age,value); } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。