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

发布于 2024-11-16 05:34:26 字数 328 浏览 3 评论 0原文

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

但说到 Unity 2: 我在 Unity 2 中看到了一个使用方法拦截进行异常处理的示例,但只有当我在 Unity Container & 中注册类型时它才起作用。解决它。

我可以在使用之前解析类型,但是在 Unity 中,是否可以注册所有类型和类型?单次拍摄的方法?

简而言之,使用 Unity 2,我希望拦截程序集中的所有方法,就像我们在 PostSharp 中所做的那样

In my current project i have implemented Exception Aspect using PostSharp. And PostSharp support applying this aspect for entire assembly, so i no need to specify the Exception attribute to each and every method.

But when it comes to Unity 2:
I have seen one sample in Unity 2 for Exception handling using method interception, but it is working only if i register the Type in Unity Container & resolve it.

It's fine for me to resolve the Type before using it, but in Unity, is there anyway to register all types & methodes in single shot?

In short, using Unity 2, i'm looking to intercept all methods in an assmebly just like we do in PostSharp

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

咿呀咿呀哟 2024-11-23 05:34:26

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

如果您使用成熟的拦截器而不是策略,它们将默认作用于它们注册的任何类型的所有方法调用。

You would have to write some reflection to iterate through all the types in your assembly and register them all in Unity. This isn't too much of a hardship - should be just a simple call to Assembly.GetTypes() to retrieve all types and then iterate over them, registering each one into Unity with the appropriate interceptor.

If you use full-blown Interceptors rather than Policies they will by default act over all method calls on any type that they are registered with.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文