摘要: Unity提供了丰富的拦截匹配策略,同时它也提供了ApplyNoPoliciesAttribute用于对特定的成员不应用拦截策略。看一个简单的示例: MyObject类型的DoWork函数不会被拦截。 阅读全文
posted @ 2012-08-11 10:41 junchu25 阅读(189) 评论(0) 推荐(0) 编辑
摘要: Unity提供了匹配多个Type的规则TypeMatchingRule类型。和TagAttributeMatchingRule的tagToMatch参数一样,TypeMatchingRule的参数typeName一样不支持通配符。看一个简单的示例: 配置文件如下: 阅读全文
posted @ 2012-08-11 10:40 junchu25 阅读(345) 评论(0) 推荐(0) 编辑
摘要: Unity通过TagAttribute显示定义需要被拦截注入的成员,TagAttributeMatchingRule类型用来匹配该规则。需要注意的是TagAttributeMatchingRule不支持通配符。看一个简单的例子: 配置文件定义如下: 阅读全文
posted @ 2012-08-11 10:36 junchu25 阅读(393) 评论(0) 推荐(0) 编辑
摘要: 之前提到Unity提供的ParameterTypeMatchingRule无法定义返回值,ReturnTypeMatchingRule就是用来完成限制这个条件。看一个简单的示例: MyObject中只有函数DoWork的返回值匹配了定义,配置文件定义如下: 阅读全文
posted @ 2012-08-11 10:34 junchu25 阅读(301) 评论(0) 推荐(0) 编辑
摘要: Unity提供了用于匹配函数名称和类型签名的规则MethodSignatureMatchingRule类型。ParameterTypeMatchingRule用于匹配函数的参数类型和参数性质(In、Out),但是无法匹配函数名称。而MethodSignatureMatchingRule的缺点是无法限 阅读全文
posted @ 2012-08-11 10:29 junchu25 阅读(318) 评论(0) 推荐(0) 编辑
摘要: Unity提供了针对类型属性的拦截规则PropertyMatchingRule类型。它的属性名称匹配通配符规则和MemberNameMatchingRule等类型相同。它可以指定拦截getter、setter或者同时拦截。看一个简单的示例: 上面的示例只有调用Name属性的setter才会被拦截。配 阅读全文
posted @ 2012-08-11 10:27 junchu25 阅读(296) 评论(0) 推荐(0) 编辑
摘要: Unity提供了函数入口参数类型匹配的规则ParameterTypeMatchingRule类型。它可以针对一些特定函数的入口参数进行拦截,比如拦截入口参数类型为Int32和Char的函数,看一个简单示例: 只有MyObject的DoWork和DoWork2函数符合定义的ParameterTypeM 阅读全文
posted @ 2012-08-11 10:24 junchu25 阅读(394) 评论(0) 推荐(0) 编辑
摘要: Unity提供了根据名称空间进行匹配规则的类型NamespaceMatchingRule,它的通配符规则和MemberNameMatchingRule相同。看一个简单的示例: 配置文件如下定义: 阅读全文
posted @ 2012-08-10 11:55 junchu25 阅读(637) 评论(0) 推荐(0) 编辑
摘要: Unity提供了基于成员名称的匹配规则类型MemberNameMatchingRule,允许根据匹配表达式进行注入。看一个简单示例: 上面的示例只有DoWork被调用。MemberNameMatchingRule提供了符号*用来完成剩余部分的匹配,如果只传递*则表示全部。 使用*: 使用后置*: 使 阅读全文
posted @ 2012-08-10 11:53 junchu25 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 在声明式编程流行的今天,对于AOP中许多附加功能我们往往会通过声明一个Attribute更为直观的展示。比如需要添加一个LogHandler,那就定义一个LogSupportAttribute。Unity提供了自定义Attribute的匹配规则类型CustomAttributeMatchingRul 阅读全文
posted @ 2012-08-10 11:49 junchu25 阅读(702) 评论(0) 推荐(0) 编辑