【问题标题】:Finding location of the Concrete Class in a Service Locator Pattern在服务定位器模式中查找具体类的位置
【发布时间】:2013-07-29 22:52:44
【问题描述】:

在使用

时,有没有一种简单的方法可以找到 具体类程序集的位置或名称

Service Locator Pattern 不运行包含的解决方案?

在大型库中工作时,很难找到服务定位器返回的实现。

有没有一种简单的方法可以找到给定接口或通过任何其他方式 (C#) 的类型位置?

例如,返回的IOrder的实现在什么位置?

_iOrder = ServiceLocator.GetService<IOrder>();

编辑:这可以在包含的解决方案之外完成吗,例如使用控制台应用程序?

【问题讨论】:

    标签: c# design-patterns service-locator


    【解决方案1】:
    _iOrder = ServiceLocator.GetService<IOrder>();
    string fullName = _iOrder.GetType().AssemblyQualifiedName;
    

    【讨论】:

    • 我希望能够在不运行整个解决方案的情况下做到这一点。这怎么能在控制台应用程序中完成,以便它可以独立运行?
    • @ojhawkins 这很简单——只需创建一个控制台项目,添加您需要的引用,根据需要准备您的容器,使其包含您要检查的类型(因此 ServiceLocator.GetService() 不会't return null) 然后运行该控制台项目。
    【解决方案2】:

    这应该提供所需的详细信息:

    var fullName = _iOrder.GetType().FullName
    

    【讨论】:

      猜你喜欢
      • 2013-03-14
      • 2016-03-28
      • 2011-11-17
      • 1970-01-01
      • 2014-02-19
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      相关资源
      最近更新 更多