服务定位器(Service Locator) & 初始化 - CommonInitialization 静态类

优质
小牛编辑
137浏览
2023-12-01

[命名空间: Serenity.Web, 程序集: Serenity.Web]

如果要在 web 环境中使用默认设置,而不是手动组织服务定位器和其他配置,你只需在应用程序启动方法中调用 CommonInitialization.Run()。CommonInitialization 为一些 Serenity 抽象注册默认实现。

  1. CommonInitialization.Run();

如果已经为一些抽象注册了提供者,CommonInitialization 不会覆盖它们。

此方法包含调用一些其他的方法来初始化 Serenity 平台的默认值:

  1. public static class CommonInitialization
  2. {
  3. public static void Run()
  4. {
  5. InitializeServiceLocator();
  6. InitializeSelfAssemblies();
  7. InitializeConfigurationSystem();
  8. InitializeCaching();
  9. InitializeLocalTexts();
  10. InitializeDynamicScripts();
  11. }
  12. public static void InitializeServiceLocator()
  13. {
  14. if (!Dependency.HasResolver)
  15. {
  16. var container = new MunqContainer();
  17. Dependency.SetResolver(container);
  18. }
  19. }
  20. //...
  21. }

CommonInitialization.InitializeServiceLocator 和其他方法也可以单独地使用,而不需要调用 CommonInitialization.Run。

InitializeServiceLocator() 注册一个 MunqContainer 实例作为 IDependencyResolver 的默认实现。