我有一个 DDD 分层应用程序,因此它包含一个 Asp.Net MVC 4 项目和一个 WebApi 项目(表示层中有 2 个项目)。
用 Asp.Net MVC 4 添加 Autofac = ok 用 Asp.Net WebApi 添加 Autofac = 不行
这是我的asp.net web api中的global.asax.cs
var configuration = GlobalConfiguration.Configuration;
var builder = new ContainerBuilder();
// Configure the container with the integration implementations.
// builder.ConfigureWebApi(configuration);
builder.RegisterWebApiFilterProvider(configuration);
// Register API controllers using assembly scanning.
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
builder.RegisterType(typeof(UnitOfWork)).As(typeof(IUnitOfWork)).InstancePerLifetimeScope()
.OnRelease(x => { ((IUnitOfWork)x).Commit(); });
builder.RegisterType(typeof(DatabaseFactory)).As(typeof(IDatabaseFactory)).InstancePerLifetimeScope().AsImplementedInterfaces();
builder.RegisterAssemblyTypes(typeof(UserRepository).Assembly).Where(t => t.Name.EndsWith("Repository")).AsImplementedInterfaces();
builder.RegisterAssemblyTypes(typeof(SecurityService).Assembly).Where(t => t.Name.EndsWith("Service")).AsImplementedInterfaces();
var container = builder.Build();
// Set the dependency resolver implementation.
var resolver = new AutofacWebApiDependencyResolver(container);
configuration.ServiceResolver.SetResolver(resolver);
我看到的错误是:无法从程序集“System.Web.Http,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”加载类型“System.Web.Http.Dependencies.IDependencyResolver”。尝试重写部分代码 3 次,但它似乎不起作用。
已经找到了一些博客的链接,但大多数都包含builder.ConfigureWebApi(configuration);
对新版本中不存在的引用。
关于如何解决这个问题的任何想法?