应用程序初始化

如果应用程序需要在业务处理前完成一些初始化动作,

例如:程序使用了RabbitMQ队列,我们希望在程序启动时就创建好队列,

诸如这类场景可以参考本文介绍的方法。



开发过程

  • 在项目中新建一个名为 AppInitializer 静态类
  • 增加一个名为 Init 的方法
  • 在 Init 方法中编写初始化逻辑

示例代码

namespace YourProjectNameSpace;

public static class AppInitializer
{
    public static void Init()
    {
        // 在这里编写初始化逻辑
    }
}

补充说明:

  • 示例代码中的类名和方法名是固定的,不能随意取名
  • 示例代码中的类型和方法都要定义成静态的
  • Init方法不需要在代码中调用,Nebula会在启动时调用

注意:

  • 不要直接在Program.Main方法中执行初始化操作



类库项目初始化

在类库项目中,AppInitializer类不会纳入查找范围,所以即使有定义也不会被调用。

此时可以参照以下方法:

[Init]  // 指示这个类需要在启动时初始化
public static class ComponentInitializer
{
    public static void Init()
    {
        Console.WriteLine("Demo.Data.ComponentInitializer.Init() called!");
    }
}

说明:

  • 类型的可见性必须是 public
  • 方法的签名必须是:public static void Init()