【发布时间】:2015-11-03 21:23:56
【问题描述】:
我正在按模块开发应用程序。每个模块都对应于我们在公司的一个遗留系统。使用这样的代码,我可以使用 Unity Container 将类库中的控制器注入到 MVC 应用程序中:
using System.Linq;
using System.Web.Mvc;
using Microsoft.Practices.Unity.Mvc;
[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(MyProject.Common.UnityMvcActivator), "Start")]
[assembly: WebActivatorEx.ApplicationShutdownMethod(typeof(MyProject.Common.UnityMvcActivator), "Shutdown")]
namespace MyProject.Common
{
public static class UnityMvcActivator
{
/// <summary>Integrates Unity when the application starts.</summary>
public static void Start()
{
var container = UnityConfig.GetConfiguredContainer();
FilterProviders.Providers.Remove(FilterProviders.Providers.OfType<FilterAttributeFilterProvider>().First());
FilterProviders.Providers.Add(new UnityFilterAttributeFilterProvider(container));
DependencyResolver.SetResolver(new UnityDependencyResolver(container));
// TODO: Uncomment if you want to use PerRequestLifetimeManager
// Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility.RegisterModule(typeof(UnityPerRequestHttpModule));
}
/// <summary>Disposes the Unity container when the application is shut down.</summary>
public static void Shutdown()
{
var container = UnityConfig.GetConfiguredContainer();
container.Dispose();
}
}
}
当我安装the Unity.Mvc bootstrapper 时,此代码会自动添加到类库中。
所有作为模块实现的类库都将面向 Web。
像魅力一样工作,但我仍然必须从 MVC 应用程序中定义 RouteConfig 中的所有路由。我的挑战是在类库中定义这些路由。我还没有找到任何解释如何做的材料。
这可能吗?如果是,怎么做?
【问题讨论】:
标签: c# asp.net-mvc unity-container