C# 每次应用程序启动时向Autofac注册操作
我正在使用MVC和Autofac。我想注册每次应用程序启动运行一次的操作。我想实现这样的目标:C# 每次应用程序启动时向Autofac注册操作,c#,asp.net-mvc,autofac,C#,Asp.net Mvc,Autofac,我正在使用MVC和Autofac。我想注册每次应用程序启动运行一次的操作。我想实现这样的目标: public class SomeModule : IOnceRunnable { private IService service; public SomeModule(IService service) { this.service = service; } public void Action() { // this actio
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>();
公共类SomeModule:IOnceRunnable
{
私人色情服务;
公共服务模块(iSeries服务)
{
服务=服务;
}
公共无效行动()
{
//此操作将在应用程序启动时调用
}
}
containerBuilder.RegisterOnCerUnable();
有可能执行这样的操作吗
我知道我可以使用内置容器(
var container=builder.Build();
您需要的是Autofac中的支持
您需要实现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();
builder
.RegisterType()
.As()
.SingleInstance();
当容器构建时,Autofac将执行剩余的运行
Start
方法一次。谢谢!这正是我想要的。