我正在使用ASP.NET MVC 4 RC
以及最新版本的MvcExtensions
和MvcExtensions.Autofac
。Automapper使用MvcExtensions在MVC4應用程序中詢問MVC3參考
我不知道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參考?
排除綁定重定向的任何特定原因能夠解決手頭的問題? Ninject.Web和東西恰好工作(或者我感到困惑,只是Ninject.MVC3位源代碼...)? (我知道一個答案,說「只使用綁定Reidrects」而沒有任何資格,肯定也是錯誤的......) – 2012-07-27 20:49:36