IServiceLocator.GetInstance <tservice>()无法正常工作</tservice>

时间:2015-03-04 11:05:53

标签: linq c#-3.0 structuremap

我们有一个扩展方法来注册服务,如下所示 我们说只有当密钥是远程主机名时才返回我的proc实例。我们希望在proc实例中接收下面提到的所有三个调用

IStudyService studyService = ServiceLocator.Current.GetInstance(Stentor.Server.ServerInfo.HostName)

IStudyService studyService2 = ServiceLocator.Current.GetInstance(&#34; localhost&#34;);

IStudyService studyService3 = ServiceLocator.Current.GetInstance() 前两个调用正在按预期工作,但是当我们使用空键进行第三次调用时突出显示一个我们正在退出proc而不是在proc中

我们提到条件,如果请求的密钥为空或localhost或hostanme返回ThenIt.Is.Type();

但是对于(String.IsNullOrEmpty(context.RequestedName),这个条件没有进行,下面的代码正在执行

如果需要处理空密钥,请告知您此代码中的错误或上下文的注册方式

谢谢&amp;问候

萨库马尔

1 个答案:

答案 0 :(得分:0)

注册代码

return (String.IsNullOrEmpty(context.RequestedName) ||
              context.RequestedName.Equals("localhost", StringComparison.OrdinalIgnoreCase) ||
              context.RequestedName.Equals(ServerInfo.HostName, StringComparison.OrdinalIgnoreCase));