AutofacWebApiDependencyResolver 方法不存在
AutofacWebApiDependencyResolver method doesnt exist
我正在学习本教程 Youtube DI for dependency injection. This clear thing out for me however it does not show how to implement on a Web API using n-tier architecture. I also included followed this tutorial: C-Sharp AutoFac Web API Tutorial。
这是我的代码的样子:
using Autofac;
using System.Linq;
using System.Reflection;
using System.Web.Http;
namespace WebAPI.App_Start
{
public class AutofacWebapiConfig
{
public static IContainer Container;
public static void Initialize(HttpConfiguration config)
{
Initialize(config, RegisterServices(new ContainerBuilder()));
}
public static void Initialize(HttpConfiguration config, IContainer container)
{
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
}
private static IContainer RegisterServices(ContainerBuilder builder)
{
//Register your Web API controllers.
//builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
builder.RegisterAssemblyTypes(Assembly.Load(nameof(Coordination)))
.Where(t => t.Namespace.Contains("Services"))
.As(t => t.GetInterfaces().FirstOrDefault(i => i.Name == "I" + t.Name));
//Set the dependency resolver to be Autofac.
Container = builder.Build();
return Container;
}
}
}
我这里的问题是缺少 AutofacWebApiDependencyResolver。
这是我放置代码以调用 AutofacWebapiConfig class
的地方
namespace CB.WebAPI
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
//Dependency Injection
//Configure AutoFac
AutofacWebapiConfig.Initialize(GlobalConfiguration.Configuration);
// Web API routes
...
}
}
}
这是一个全新的 Web api 核心,带有 3 个 class 库,采用 n 层架构。任何帮助,将不胜感激。是否在正确的位置调用它,我是否需要创建第三个 class.
我还在我的 app_start 文件夹中添加了一个 classed Bootstrapper,我修改了 Global.asax 以添加一行 Bootstrapper.Run();
在评论中,您曾说过 AutofacWebApiDependencyResolver 属于 (Autofac.Integration.WebApi) 的命名空间在您尝试为其添加 using 指令时不存在。
您的项目似乎没有安装 Autofac.Webapi2 NuGet 包。
使用Visual Studio安装:
- Select 工具 | NuGet 包管理器 |管理解决方案的 NuGet 包...
- 单击“浏览”选项卡
- 键入 Autofac.Webapi2 并点击 enter/return
- 单击列表中的 Autofac.WebApi2
- Select右侧要安装的项目
- 点击安装
- 确定所有出现的许可协议(假设您同意)。
或者,在 Visual Studio 2019 年,您可以使用以下简单程序安装它:
- 点击
AutofacWebApiDependencyResolver
- Ctrl+.
- Select "Install package 'Autofac.WebApi2'"
- 点击"Find and install latest version"
我正在学习本教程 Youtube DI for dependency injection. This clear thing out for me however it does not show how to implement on a Web API using n-tier architecture. I also included followed this tutorial: C-Sharp AutoFac Web API Tutorial。
这是我的代码的样子:
using Autofac;
using System.Linq;
using System.Reflection;
using System.Web.Http;
namespace WebAPI.App_Start
{
public class AutofacWebapiConfig
{
public static IContainer Container;
public static void Initialize(HttpConfiguration config)
{
Initialize(config, RegisterServices(new ContainerBuilder()));
}
public static void Initialize(HttpConfiguration config, IContainer container)
{
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
}
private static IContainer RegisterServices(ContainerBuilder builder)
{
//Register your Web API controllers.
//builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
builder.RegisterAssemblyTypes(Assembly.Load(nameof(Coordination)))
.Where(t => t.Namespace.Contains("Services"))
.As(t => t.GetInterfaces().FirstOrDefault(i => i.Name == "I" + t.Name));
//Set the dependency resolver to be Autofac.
Container = builder.Build();
return Container;
}
}
}
我这里的问题是缺少 AutofacWebApiDependencyResolver。
这是我放置代码以调用 AutofacWebapiConfig class
的地方namespace CB.WebAPI
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
//Dependency Injection
//Configure AutoFac
AutofacWebapiConfig.Initialize(GlobalConfiguration.Configuration);
// Web API routes
...
}
}
}
这是一个全新的 Web api 核心,带有 3 个 class 库,采用 n 层架构。任何帮助,将不胜感激。是否在正确的位置调用它,我是否需要创建第三个 class.
我还在我的 app_start 文件夹中添加了一个 classed Bootstrapper,我修改了 Global.asax 以添加一行 Bootstrapper.Run();
在评论中,您曾说过 AutofacWebApiDependencyResolver 属于 (Autofac.Integration.WebApi) 的命名空间在您尝试为其添加 using 指令时不存在。
您的项目似乎没有安装 Autofac.Webapi2 NuGet 包。
使用Visual Studio安装:
- Select 工具 | NuGet 包管理器 |管理解决方案的 NuGet 包...
- 单击“浏览”选项卡
- 键入 Autofac.Webapi2 并点击 enter/return
- 单击列表中的 Autofac.WebApi2
- Select右侧要安装的项目
- 点击安装
- 确定所有出现的许可协议(假设您同意)。
或者,在 Visual Studio 2019 年,您可以使用以下简单程序安装它:
- 点击
AutofacWebApiDependencyResolver
- Ctrl+.
- Select "Install package 'Autofac.WebApi2'"
- 点击"Find and install latest version"