Ninject 拦截任何具有特定属性的方法吗?
我怎样才能让 Ninject.Extensions.Interception 基本上让我将特定的拦截器绑定到具有属性的任何方法... psudocode:
Kernel.Intercept(context => context.Binding.HasAttribute<TransactionAttribute>())
.With<TransactionInterceptor>
使用如下类:
public SomeClass
{
[TransactionAttribute]
public void SomeTransactedMethod()
{ /*do stuff */ }
}
How can I get Ninject.Extensions.Interception to basically let me bind a specific interceptor to any method that has an attribute... psudocode:
Kernel.Intercept(context => context.Binding.HasAttribute<TransactionAttribute>())
.With<TransactionInterceptor>
With a class like:
public SomeClass
{
[TransactionAttribute]
public void SomeTransactedMethod()
{ /*do stuff */ }
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
假设您正在使用 Ninject.Extensions.Interception 这应该可以解决问题
确保应该拦截的方法是标记为虚拟。
当调用
SomeTransactedMethod()
时,它应该被拦截。更新
您可以创建自定义规划策略。
现在应该可以了。
Assuming that you are using Ninject.Extensions.Interception this should do the trick
Make sure that the method that should be intercepted is marked as virtual.
When
SomeTransactedMethod()
is called it should be intercepted.UPDATE
You could create a custom planning strategy.
This should now work.
这是我用于相同目的的代码
以及
TransactionAttribute 的代码
Here is the code that I used for the same purpose
And
And code for TransactionAttribute