.net framework webapi + autofac
.net framework 4.7.2
1,引用
Autofac 6.3.0
Autofac.WebApi2 6.1.0
2,Global.asax
using Autofac;
using Autofac.Integration.WebApi;
using System.Linq;
using System.Reflection;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Routing;
namespace WebApplication4
{
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
//AutofacConfig.SetupContainer();
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
//BundleConfig.RegisterBundles(BundleTable.Bundles);
var builder = new ContainerBuilder();
//Assembly asseambly_BLL = Assembly.Load("ClassLibrary1");
builder.RegisterApiControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired();
//builder.RegisterAssemblyTypes(asseambly_BLL).AsImplementedInterfaces().PropertiesAutowired();
builder.RegisterAssemblyTypes(Assembly.Load("ClassLibrary1"))
.Where(t => t.Name.EndsWith("Service"))
.AsImplementedInterfaces();
var container = builder.Build();
//System.Web.Mvc.DependencyResolver.SetResolver(new AutofacWebApiDependencyResolver(container));
GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(container);
}
}
}
3,接口请求
using ClassLibrary1;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace WebApplication4.Controllers
{
public class TestAutofacController : ApiController
{
public ITestService _testService;
public TestAutofacController(ITestService testService)
{
this._testService = testService;
}
[HttpGet]
[Route("TestAutofac/GetTest")]
public string GetTest()
{
var result = _testService.GetList();
return JsonConvert.SerializeObject(result);
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构