【发布时间】:2017-09-13 18:53:34
【问题描述】:
我想在控制台应用程序中使用 Autofac。这是我真正的第一次使用。在此之前,我只在 ASP.NET MVC 中使用它。在 MVC 项目中,我可以在 Global.asax 中设置 Autofac,将 IService 注入控制器,我们可以说它越来越有效。 在控制台应用程序中,我这样做如下:
internal class Program
{
private static IContainer Container { get; set;}
private static void Main(string[] args)
{
Container = Container.Configure(); // here I have all necessary objects set
// now I can use it in Main method as:
using (var scope = Container.BeginLifetimeScope())
{
scope.Resolve<ISomething>();
}
}
}
正如你所见,它的用法很简单,只在 Main 方法中。在外部课程中使用它怎么样?假设我想创建类 Cat,并在其中使用 Autofac。我应该从类 Program 传递给构造函数对象 Container 吗?例如:
Cat cat = new Cat(Program.Container, "Molly");
或者我应该在 Cat 类中创建 IContainer?
什么是最好的解决方案?
【问题讨论】:
标签: c# .net dependency-injection console-application autofac