我是Autofac的新手,并试图让我的第一个项目使用它。我不确定如何从Autofac注入注册助手?任何帮助将不胜感激。
App.xaml.cs
private void Application_Startup(object sender, StartupEventArgs e)
{
var builder = new ContainerBuilder();
builder.Register(c => MyFactory.CreateHelper()).As<IHelper>();
RootVisual = new MainWindow(...);
}
MainWindow.xaml.cs
public class MainWindow
{
public IHelper IHelper {get;set;}
public MainWindow(IHelper helper)
{
iHelper = helper;
}
}
答案 0 :(得分:2)
你在那里90%,你只缺少一件事。
将其添加到App.xaml.cs
中的Application_Startupcontainer = builder.Build();
RootVisual = new MainWindow(container.Resolve<IHelper>());
所以现在你的Application_Statup看起来像这样,它将构建你的容器并允许你将带有容器的已注册类注入你的类中。并确保在Application_Exit上妥善处理容器。
IContainer container;
private void Application_Startup(object sender, StartupEventArgs e)
{
var builder = new ContainerBuilder();
builder.Register(c => MyFactory.CreateHelper()).As<IHelper>();
container = builder.Build()
RootVisual = new MainWindow(container.Resolve<IHelper>());
}
private void Application_Exit(object sender, EventArgs e)
{
container.Dispose();
}