0
私はシンプルなオートファックを使用していますが、アセンブリからのモジュールスキャンオプションでWeb Apiでランタイム例外がスローされました。autofacモジュールはWebApi Nレイヤーを解決します
Global.asax.cs
でシンプルなワーキングコードvar builder = new ContainerBuilder();
var config = GlobalConfiguration.Configuration;
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
builder.RegisterWebApiFilterProvider(config);
builder.RegisterType<ReportRepository>().As<IReportRepository>();
builder.RegisterType<UserRepository>().As<IUserRepository>();
....
var container = builder.Build();
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
Global.asax.cs
で異なる層に議会からのモジュールをスキャンpublic class RepositoryModule : Module
{
protected override void Load(ContainerBuilder builder)
{
//var assembly = AppDomain.CurrentDomain.GetAssemblies();
var assembly = System.Reflection.Assembly.GetExecutingAssembly();
builder.RegisterAssemblyTypes(assembly)
.Where(a => a.Name.EndsWith("Repository"))
.AsImplementedInterfaces()
.InstancePerLifetimeScope();
base.Load(builder);
}
}
var config = GlobalConfiguration.Configuration;
var builder1 = new ContainerBuilder();
builder1.RegisterApiControllers(Assembly.GetExecutingAssembly());
builder1.RegisterWebApiFilterProvider(config);
builder1.RegisterModule(new RepositoryModule());
using (var container1 = builder1.Build())
{
config.DependencyResolver = new AutofacWebApiDependencyResolver(container1);
}
で見つける問題これは他の簡単な方法を示唆しています。
ありがとう...
例外の詳細を教えていただけますか? –