我正在使用ASP.NET MVC 4 RC
最新版本的MvcExtensions
and MvcExtensions.Autofac
。
我不知道 MVC 4 的工作方式是否与 MVC 3 不同?下面的代码是我在 MVC 3 应用程序中使用它的方式。我刚刚将它复制并粘贴到我的 MVC 4 应用程序中。
我将 Global.asax.cs 文件替换为如下所示:
public class MvcApplication : AutofacMvcApplication
{
public MvcApplication()
{
Bootstrapper.BootstrapperTasks
.Include<RegisterAreas>()
.Include<RegisterControllers>()
.Include<RegisterRoutesBootstrapper>()
.Include<AutoMapperBootstrapper>()
.Include<FluentValidationBootstrapper>();
}
protected override void OnStart()
{
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
base.OnStart();
}
}
RegisterRoutesBootstrapper
,AutoMapperBootstrapper
并且FluentValidationBootstrapper
是我的自定义引导程序类。AutoMapperBootstrapper 的代码如下所示:
public class AutoMapperBootstrapper : BootstrapperTask {
public override TaskContinuation Execute()
{
const string mappingNamespace = "MyProject.DomainModel.Mappings";
IEnumerable<Type> mappingTypes = typeof(IEntity).Assembly
.GetTypes()
.Where(
type =>
type.IsPublic &&
type.IsClass &&
!type.IsAbstract &&
!type.IsGenericType &&
type.Namespace == mappingNamespace);
mappingTypes.ForEach(t => Activator.CreateInstance(t));
return TaskContinuation.Continue;
} }
它用蓝色下划线 IEnumerable 并显示错误:
The type 'System.Web.Mvc.Controller' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
好的,所以当我编译我的项目时,它正在寻找 ASP.NET MVC 3 参考:
The type 'System.Web.Mvc.IViewPageActivator' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. There about 10 such errors relating to the AutoMapperBootstrapper.cs file.
我没有打扰这个参考并添加了 MVC 4 参考。我认为这会解决我的领域问题,但事实并非如此。
任何想法为什么它要求 MVC 参考?