.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);
        }
    }
}
                    
                
                
            
        
浙公网安备 33010602011771号