为什么我的IPersistenceStore实施不受尊重?
问题描述:
我正在尝试创建IPersistenceStore
的新实现。为什么我的IPersistenceStore实施不受尊重?
我明白我需要使用它在我的web.config
一瞥节点配置,像这样一个IServiceLocator
登记我的新的实现:
<glimpse defaultRuntimePolicy="On" endpointBaseUri="~/Glimpse.axd" serviceLocatorType="MyNewServiceLocator, MyAssembly">
但是,我看到以下行为:
- 我
IServiceLocator
的GetInstance
方法从不打 - 我的新
IPersistenceStore
的构造函数在应用程序被击中启动 - 没有其他方法对我
IPersistenceStore
是不断打(即窥数据仍然存储在IPersistenceStore
默认IMPL)
看来,我的IPersistenceStore
没有被正确注册。为什么会这样呢?
答
目前尚不清楚这可能是错误的,因为你不显示任何你的代码与沿着这些线路的IServiceLocator
东西应该足以让您的自定义持久存储您的自定义服务定位器返回的:
public class MyNewServiceLocator : IServiceLocator
{
public T GetInstance<T>() where T : class
{
var type = typeof(T);
if (type == typeof(IPersistenceStore))
{
return new CustomPersistenceStore() as T;
}
return null;
}
public ICollection<T> GetAllInstances<T>() where T : class
{
return null;
}
}
这几乎就是我所拥有的。但是,如果我在'GetInstance'方法中放置断点,它永远不会被打中。这使我相信它不是'IServiceLocator',而是与它的注册有关。 – 2015-02-02 12:02:15
当你说你的断点没有命中时,你是用F5启动应用程序还是一旦应用程序启动就附加了?因为它只会在第一次请求时被触发,一旦所有事情都被初始化,服务关联器就不再使用了。你看到glimpse.log中的错误可能会给你一些指示吗? – cgijbels 2015-02-02 13:14:28
我从F5开始。啊没有意识到你可以切换日志记录。我会试试这个,然后回来,谢谢。 – 2015-02-02 13:17:28