• 《Prism 5.0源码走读》Service Locator Pattern


    在Prism Bootstrapper里面取实例的时候使用 ServiceLocator模式,使用的是CommonServiceLocator库 (http://commonservicelocator.codeplex.com/)。

    ServiceLocation定义了IServiceLocator及其基本实现ServiceLocatorImplBase;定义了IServiceLocator委托ServiceLocatorProvider;定义了ActivationException;还有个静态类ServiceLocator。

     Prism ServiceLocator的设置和使用

    1. Bootstrapper定义了抽象方法去设置ServiceLocator

      protected abstract void ConfigureServiceLocator();

    UnityBootstrapper提供了使用Unity Container的实现:

    UnityServiceLocatorAdapter:

    public class UnityServiceLocatorAdapter : ServiceLocatorImplBase
        {

    设置Unity Container到ServiceLocator:

            protected override void ConfigureServiceLocator()
            {
                ServiceLocator.SetLocatorProvider(() => this.Container.Resolve<IServiceLocator>());
            }

    2. 使用ServiceLocator:

            /// <summary>
            /// Initializes the modules. May be overwritten in a derived class to use a custom Modules Catalog
            /// </summary>
            protected virtual void InitializeModules()
            {
                IModuleManager manager = ServiceLocator.Current.GetInstance<IModuleManager>();
                manager.Run();
            }
  • 相关阅读:
    ceph pg pool
    linux 开放访问端口
    授予普通用户root权限
    ajax返回json中文是问号
    elasticseach 安装head
    python学习之路8
    JS正则表达式学习
    python学习之路7 前端学习4 jQuery 学习
    python学习之路7 前端学习3
    python 学习总结6 前端学习2
  • 原文地址:https://www.cnblogs.com/codesee/p/3908675.html
Copyright © 2020-2023  润新知