c# – 面向方面编程的替代方案
发布时间:2020-12-15 21:49:39 所属栏目:百科 来源:网络整理
导读:有没有使用面向方面编程注入重复代码的替代方法. 假设我们有一个包含许多属性的类,如果属性更改了它的值,我们想记录它. class Person { public string Name { get{return name;} set { name = value; LogPropertyChanged("Name"); } } public int Age { get{
有没有使用面向方面编程注入重复代码的替代方法.
假设我们有一个包含许多属性的类,如果属性更改了它的值,我们想记录它. 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); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |