如何使用Unity拦截整个程序集

时间:2011-06-20 02:57:04

标签: c# unity-container postsharp

在我目前的项目中,我使用PostSharp实现了Exception Aspect。 PostSharp支持将此方面应用于整个程序集,因此我无需为每个方法指定Exception属性。

但是当谈到Unity 2时: 我在Unity 2中看到了一个使用方法拦截进行异常处理的示例,但只有在Unity Container中注册Type并且它才能正常工作。解决它。

我可以在使用之前解析Type,但在 Unity 中,无论如何都要注册所有类型&单枪法?

简而言之,使用Unity 2,我希望像在PostSharp中一样拦截所有方法

1 个答案:

答案 0 :(得分:0)

您必须编写一些反射来遍历程序集中的所有类型,并在Unity中注册它们。这不是太困难 - 应该只是对Assembly.GetTypes()的简单调用来检索所有类型然后迭代它们,使用适当的拦截器将每个类型注册到Unity中。

如果你使用完整的拦截器而不是策略,他们默认会对他们注册的任何类型的所有方法调用进行操作。