Injection de dépendances MVC

1. Créez trois bibliothèques de classes
Insérez la description de l'image ici
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. Nuget a introduit l'intégration d'Autofac et d'Autofac ASP.NET MVC5 dans
MVC 3. AutofacConfig.cs nouvellement créé sous le dossier App_Start

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 registre AutofacConfig

AutofacConfig.Register();

5. Exemples

 private IUserInfoService userinfoService;
        //通过构造器注入依赖
        public HomeController(IUserInfoService _userinfoService)
        {
    
    
            userinfoService = _userinfoService;
        }
        public ActionResult Index()
        {
    
    
            List<UserInfo> users = userinfoService.GetUserInfo();
            return View();
        }

Pour plus de détails, veuillez consulter: https://www.cnblogs.com/wyy1234/p/9144669.html

Je suppose que tu aimes

Origine blog.csdn.net/qq_39072819/article/details/105061601
conseillé
Classement