UnityMvcActivator 或 global.asax

问题描述 投票:0回答:1

我有两个问题。我安装了 Unity 和 Unity MVC 软件包来开始研究它。我通过注册一些类型得到了一些简单的控制器构造函数注入,所以一切进展顺利。我注意到它甚至在 global.asax 被击中之前就开始了,因为:

[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(example.org.UnityMvcActivator), nameof(example.org.UnityMvcActivator.Start))]

问题 1:这个语法的名称是什么?某种将类型/方法附加到其他地方的内联汇编引用?我以前从未见过这个。

问题2:UnityMvcActivator有Start()和Shutdown()方法,对应上面的[assemble]行,后者只是调用容器上的dispose。 Start() 的核心元素是调用:

DependencyResolver.SetResolver(new UnityDependencyResolver(UnityConfig.Container));

这个 UnityMvcActivator 的存在是否有一个令人信服的原因,比如 dispose(),或者它可能需要尽早启动,或者它只是让我开始的样板脚手架,我也可以将 SetResolver() 行进入我的 global.asax 然后删除这个类?

.net asp.net-mvc unity-container
1个回答
0
投票

这个语法的名称是什么?某种将类型/方法附加到其他地方的内联汇编引用?我以前从未见过这个。

这称为程序集属性。从我记事起,它们就已经存在了(从 .NET 1.1 开始我就一直在进行 .NET 开发)。

这个 UnityMvcActivator 存在有令人信服的理由吗

我想不出任何办法。据我所知,没有其他 DI 容器可以像这样工作,并且您始终可以使用 Pure DIComposition Root 而不是所有额外的复杂性。

© www.soinside.com 2019 - 2024. All rights reserved.