【发布时间】:2012-01-24 12:55:22
【问题描述】:
我注意到,当我将 NuGet 中的 StructureMap 安装到我的 ASP.NET MVC3 项目中时,Dave Ebbo 的 WebActivator 包也被添加为依赖项。
WebActivator 提供了一个PreApplicationStartMethod 属性,并且在安装时添加的样板代码中,它用于在它自己的类中初始化IoC 容器和依赖解析器,而不是在Global.asax 的Application_Start 中执行此操作方法。
鉴于 ASP.NET 4 已经拥有自己的 System.Web.PreApplicationStartMethodAttribute,为什么 WebActivator 需要提供自己的版本,而 StructureMap 需要使用它?
我猜我没有有使用 WebActivator 的变体?
为 Darin 添加了代码:
using System.Web;
using System.Web.Mvc;
using StructureMap;
[assembly: WebActivator.PreApplicationStartMethod(
typeof(MyMvcApp.App_Start.StructuremapMvc), "Start")]
// or
[assembly: PreApplicationStartMethod(
typeof(MyMvcApp.App_Start.StructuremapMvc), "Start")]
namespace MyMvcApp.App_Start {
public static class StructuremapMvc {
public static void Start() {
var container = (IContainer) IoC.Initialize();
DependencyResolver.SetResolver(new SmDependencyResolver(container));
}
}
}
【问题讨论】:
标签: asp.net asp.net-mvc structuremap