我正在使用Castle DynamicProxy编写装饰代理.我需要代理的拦截器来拦截属性写入(而不是读取)所以我正在检查方法的名称:
public void Intercept(IInvocation invocation)
{
if (invocation.Method.Name.StartsWith("set_")
{
// ...
}
invocation.Proceed();
}
Run Code Online (Sandbox Code Playgroud)
现在这个工作正常,但我不喜欢我的代理人对如何实现属性有深入了解的事实:我想用类似于以下内容的方法替换方法名称检查:
if (invocation.Method.IsPropertySetAccessor)
Run Code Online (Sandbox Code Playgroud)
不幸的是,我的Google-fu失败了.有任何想法吗?