autofac构造函数注入

凯文软件 / 2024-12-29 / 原文







using Autofac;

namespace autofac构造函数注入;

internal class Program
{
    static void Main(string[] args)
    {
        //创建一个容器
        ContainerBuilder builder = new ContainerBuilder();

        //注册UserService
        builder.RegisterType<UserService>().As<IUserService>();
        builder.RegisterType<Student>();

        //从容器中解析出UserService
        IContainer container = builder.Build();
        //IUserService a = container.Resolve<IUserService>();

        ////执行UserService的方法
        //a.show();

        var student = container.Resolve<Student>();
        student.show();

    }
}

//生产一个 UserService类
public class UserService : IUserService
{
    public void show()
    {
        Console.WriteLine("UserService 执行");
    }
}

public interface IUserService
{
    void show();
}

//生成一个学生类
public class Student
{
    IUserService _userService;
    public Student(IUserService userService)
    {
        _userService= userService;
    }
    public void show()
    {
        Console.WriteLine("Student 执行");
        _userService.show();
    }
}


image