は私がmvc5やWeb APIでこれで苦労したものが2
まずnugetパッケージ
- を追加少し助けAutofac
- Autofacのasp.netのMVC 5統合
を追加しようと思いました
- Autofac asp.net web api 2。X統合グローバルのApplication_Startで追加(またはapp_startクラスなど)で
以下のクラスに呼び出しを追加
AutofacConfig.RegisterAutoFac();
は今、それぞれの新しいのために今からApp_start
using System.Reflection;
using System.Web.Http;
using System.Web.Http.Controllers;
using System.Web.Mvc;
using Autofac;
using Autofac.Integration.Mvc;
using Autofac.Integration.WebApi;
namespace Example1.Web
{
public class AutofacConfig
{
public static IContainer RegisterAutoFac()
{
var builder = new ContainerBuilder();
AddMvcRegistrations(builder);
AddRegisterations(builder);
var container = builder.Build();
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);
return container;
}
private static void AddMvcRegistrations(ContainerBuilder builder)
{
//mvc
builder.RegisterControllers(Assembly.GetExecutingAssembly());
builder.RegisterAssemblyModules(Assembly.GetExecutingAssembly());
builder.RegisterModelBinders(Assembly.GetExecutingAssembly());
builder.RegisterModelBinderProvider();
//web api
builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()).PropertiesAutowired();
builder.RegisterModule<AutofacWebTypesModule>();
}
private static void AddRegisterations(ContainerBuilder builder)
{
//builder.RegisterModule(new MyCustomerWebAutoFacModule());
}
}
}
の下で、このクラスを追加しますアセンブリを追加すると、新しいモジュールが追加され、AddRegisterations関数にモジュールが登録されます(例を示します)
注:
私はコンテナを返送しましたが、これは必要ありません。
これはモジュールの現在のアセンブリをスキャンします。したがって、AddRegisterationsにローカルモジュールを追加しないと、すべてを2回登録します。
私はここで最小限の実装をしています:http://byterot.blogspot.co.uk/2012/04/aspnet-web-api-series-part-4-dependency.html – Aliostad