Aop注入有2种方式:动态注入和静态注入,其中动态注入有很多实现了 动态注入有几种方式:利用Remoting的ContextBoundObject或MarshalByRefObject。动态代理(反射),很多AOP框架都用这种方式。MVC的filter,也是反射。这里主要介绍 ...
Aop注入有2种方式:动态注入和静态注入,其中动态注入有很多实现了
动态注入有几种方式:
- 利用Remoting的ContextBoundObject或MarshalByRefObject。
- 动态代理(反射),很多AOP框架都用这种方式。
- MVC的filter,也是反射。
这里主要介绍静态注入
==========================================================================================
起初的想法是实现一种功能,自动给对象的属性一个默认值,想来想去没有什么好的解决方法,参考资料后决定使用Mono.Cecil修改生成的程序集来实现!
先定义一个接口
using System;using System.Collections.Generic;using System.Linq;using System.Linq.Expressions;using System.Text;using System.Threading.Tasks;namespace System.Linq{ /// <summary> /// 支持注入 /// </summary> /// <typeparam name="T"></typeparam> internal interface IInject<T> { /// <summary> /// 注入属性 /// </summary> /// <typeparam name="TKey"></typeparam> /// <param name="name"></param> /// <param name="value"></param> /// <returns></returns> IInject<T> InjectProperty<TKey>(Expression<Func<T, TKey>> propertyName, Expression<Func<T, TKey>> propertyValue, InjectType type); }}
原标题:基于Mono.Cecil的静态注入
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。