1.创建三个类库
IUserInfoService.cs
public interface IUserInfoService
{
List<UserInfo> GetUserInfo();
}
UserInfoService.cs
public class UserInfoService: IUserInfoService
{
public List<UserInfo> GetUserInfo()
{
List<UserInfo> info = new List<UserInfo>();
info.Add(new UserInfo {
Id = 1, UserName = "张三"});
return info;
}
}
UserInfo.cs
public class UserInfo
{
public int Id {
get; set; }
public string UserName {
get; set; }
}
2.MVC中Nuget引入Autofac 与 Autofac ASP.NET MVC5 Integration
3.App_Start文件夹下新建AutofacConfig.cs
public class AutofacConfig
{
public static void Register()
{
//实例化一个autofac的创建容器
var builder = new ContainerBuilder();
builder.RegisterType<UserInfoService>().As<IUserInfoService>().InstancePerRequest();
builder.RegisterControllers(Assembly.GetExecutingAssembly());
//创建一个Autofac的容器
var container = builder.Build();
//将MVC的控制器对象实例 交由autofac来创建
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
}
}
4.Global.asax注册AutofacConfig
AutofacConfig.Register();
5.实例
private IUserInfoService userinfoService;
//通过构造器注入依赖
public HomeController(IUserInfoService _userinfoService)
{
userinfoService = _userinfoService;
}
public ActionResult Index()
{
List<UserInfo> users = userinfoService.GetUserInfo();
return View();
}
详见:https://www.cnblogs.com/wyy1234/p/9144669.html