我是新用的Autofac,所以我为noob问题道歉.我阅读了互联网上的每本手册,解释了使用Autofac(或任何其他工具,如Structuremap,Unity等)时的基本知识.但我发现的所有例子都是基础知识.我需要知道如何在我的代码中更深入地实现Autofac.让我试着解释一下我需要知道的这个例子,一个控制台应用程序.
class Program
{
static void Main(string[] args)
{
var container = BuildContainer();
var employeeService = container.Resolve<EmployeeService>();
Employee employee = new Employee
{
EmployeeId = 1,
FirstName = "Peter",
LastName = "Parker",
Designation = "Photographer"
};
employeeService.Print(employee);
}
static IContainer BuildContainer()
{
var builder = new ContainerBuilder();
builder.RegisterType<EmployeeRepository>().As<IEmployeeRepository>();
builder.RegisterType<EmployeeService>();
return builder.Build();
}
}
Run Code Online (Sandbox Code Playgroud)
这很简单.我想弄清楚的是当你深入研究代码时如何实现这一点.在此示例中,执行此行时
employeeService.Print(employee);
Run Code Online (Sandbox Code Playgroud)
让我们假设"Print"方法有点复杂,需要使用其他依赖项/类来完成他的任务.我们仍在使用Autofac,所以我想我们需要像上面的例子那样创建依赖项.那是对的吗?在我的"print"方法中,当我需要使用另一个类时,我必须创建另一个容器,填充它,与Resolve()一起使用它等等?有一种更简单的方法吗?在所有解决方案中都可以使用具有所需所有依赖关系的静态类?怎么样?我希望能够清楚.也许我无法表达我的需要.:(抱歉我的英语很差.我在学习Autofac时仍在学习它.