我正在使用 MVC 和 Autofac。我想注册每个应用程序启动时运行一次的操作。我想要实现某事。像这样:
public class SomeModule : IOnceRunnable
{
private IService service;
public SomeModule(IService service)
{
this.service = service;
}
public void Action()
{
// this action would be called once on application start
}
}
containerBuilder.RegisterOnceRunnable<SomeModule>();
可以执行这样的操作吗?
我知道我可以使用内置容器(var container = builder.Build();
您正在寻找的是可启动组件 https://code.google.com/p/autofac/wiki/StartableAutofac 中的支持。
您需要实施Autofac.IStartable
界面:
public class SomeModule : Autofac.IStartable
{
private IService service;
public SomeModule(IService service)
{
this.service = service;
}
public void Start()
{
// this action would be called once on application start
}
}
您还需要将您的类型注册为IStartable
:
builder
.RegisterType<SomeModule>()
.As<IStartable>()
.SingleInstance();
Autofac 将完成剩下的运行Start
方法在容器构建时执行一次。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)