【发布时间】:2012-01-13 04:06:26
【问题描述】:
我使用 Specflow 和 WatiN 进行了一些验收测试,但不确定在哪里为我的 IOC 容器 (SimpleServiceLocator) 设置注册。
在我的网站上,注册是在我的 global.asax 上完成的。
在我的测试项目中,我尝试使用我的 [BeforeScenario] 方法设置它们,代码如下:
var container = new SimpleServiceLocator();
container.Register<ISitecoreLookupAccessor>(
() => new SitecoreLookupAccessor());
Microsoft.Practices.ServiceLocation.ServiceLocator
.SetLocatorProvider(() => container);
我在我的应用程序项目中使用了一个对象实例
ISitecoreLookupAccessor accessor =
ServiceLocator.Current.GetInstance<ISitecoreLookupAccessor>();
但我收到错误消息“对象引用未设置为对象的实例。”因为 ServiceLocator.Current 为 null ...
【问题讨论】:
标签: inversion-of-control ioc-container watin specflow service-locator