ASP.NET MVC 4 RC
と の最新バージョンをMvcExtensions
使用してい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 参照を要求している理由はありますか?