0
WebApiコントローラでAutofacを使用しようとしています。私が持っている:ここではWebApiコントローラを使用したオートファンクション
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
AutofacConfig.Register();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
は私AutofacConfigです:
public class AutofacConfig
{
public static IContainer Container { get; private set; }
public static void Register()
{
var builder = new ContainerBuilder();
// Register your Web API controllers.
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
//Register repositories and services.
Container = builder.Build();
}
}
それから私はDependencyResolverを設定しようとしている:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Filters.Add(new ExceptionHandlingAttribute());
var container = AutofacConfig.Container;//I have registered controllers here!!!
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
}
}
しかし、私が受けてる依頼中:「確認してくださいコントローラにパラメータのないpublicコンストラクタがあることを示します。
また、私はそれで何が悪いだけtutorial
のように、AutofacConfigクラスでDependencyResolverを設定しようとしましたか?
私は自分のコンテナをGlobal.asaxの静的フィールドとして定義し、すべての定型文の後にインスタンス化します。 コンテナ=新しいWindsorContainer()。インストール(FromAssembly.This()); GlobalConfiguration.Configuration.DependencyResolver = new WindsorDependencyResolver(Container.Kernel); – Fran