C# 每次应用程序启动时向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

我正在使用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>();
公共类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
方法一次。

谢谢!这正是我想要的。