【问题标题】:Spring.Net IoC and Magic StringsSpring.Net IoC 和魔术字符串
【发布时间】:2009-07-10 04:04:36
【问题描述】:

我一直在考虑 IApplicationContext.GetObject(string name) 方法,它似乎相当依赖魔术字符串来从应用程序上下文中获取对象。对于像StructureMap 这样的其他容器,您可以使用泛型来指定配置和请求对象,但有没有比在 Spring.Net IoC 容器中使用字符串从 ApplicationContext 请求对象更好的方法?

【问题讨论】:

    标签: inversion-of-control ioc-container spring.net


    【解决方案1】:

    Spring 通过adapter 支持CommonServiceLocator。此接口具有您所期望的the API,您还可以针对公共服务定位器进行编译,因此您可以根据需要切换 IoC 容器,而无需修改现有代码。

    【讨论】:

      【解决方案2】:

      你可以有一个你调用的包装器,它带有一个泛型类型参数。

      类似这样的:

      public void MyMethod()
      {
          IMyService myService = ApplicationContextWrapper.Resolve<IMyService>();
      }
      
      
      public static class ApplicationContextWrapper
      {
          public static T Resolve<T>()
          {
              return ApplicationContext.Resolve<T>(typeof(T).Name);
          }
      }
      

      不如其他一些 IoC 容器,但至少你会得到某种编译器支持。

      【讨论】:

        猜你喜欢
        • 2013-02-08
        • 2012-06-21
        • 1970-01-01
        • 1970-01-01
        • 2011-09-30
        • 2014-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多