.net中的attribute是否可以认为就是.net 的aop实现!?
也许在这里谈.net有点大逆不道。不过我觉得,aop的原理确实和.net attribute很相似
先来看看attribute的作用
“
Microsoft在.Net框架中引入了attribute,这是一种给运行时实体附加“声明性信息(declarative information)”,也称元数据的方法。可以附加attribute的实体包括:类、方法、property、类变量等。在.Net中,还可以给assembly附加attribute,不同类型的attribute描述了assembly不同方面的信息。如:身份类attribute用来描述该assembly的识别特征(名称、版本等),信息类attribute用来提供更多的产品与公司信息,声明类attribute用来描述配置信息,强名称attribute用来描述assembly是否使用了公共密钥加密的签名。应用程序能够在运行时读取这些信息,根据这些信息来控制自身与诸如序列化、安全等服务的交互作用方式。
”
摘自 http://www.csdn.net/develop/article/22/22566.shtm
继续上文,后面举了个例子Serializable。在.net里是通过增添一个属性来完成(java是通过一个标记接口来完成,我甚至认为java的public interface Serializable {}就是一种比较阳春的AOP实现)。
所以我觉得.net attribute基本上就可以认为是一种在.net上aop实现。