2015-01-31 57 views
0

我正在尝试创建IPersistenceStore的新实现。为什么我的IPersistenceStore实施不受尊重?

我明白我需要使用它在我的web.config一瞥节点配置,像这样一个IServiceLocator登记我的新的实现:

<glimpse defaultRuntimePolicy="On" endpointBaseUri="~/Glimpse.axd" serviceLocatorType="MyNewServiceLocator, MyAssembly"> 

但是,我看到以下行为:

  • IServiceLocatorGetInstance方法从不打
  • 我的新IPersistenceStore的构造函数在应用程序被击中启动
  • 没有其他方法对我IPersistenceStore是不断打(即窥数据仍然存储在IPersistenceStore默认IMPL)

看来,我的IPersistenceStore没有被正确注册。为什么会这样呢?

回答

1

目前尚不清楚这可能是错误的,因为你不显示任何你的代码与沿着这些线路的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; 
    } 
} 
+0

这几乎就是我所拥有的。但是,如果我在'GetInstance'方法中放置断点,它永远不会被打中。这使我相信它不是'IServiceLocator',而是与它的注册有关。 – 2015-02-02 12:02:15

+1

当你说你的断点没有命中时,你是用F5启动应用程序还是一旦应用程序启动就附加了?因为它只会在第一次请求时被触发,一旦所有事情都被初始化,服务关联器就不再使用了。你看到glimpse.log中的错误可能会给你一些指示吗? – cgijbels 2015-02-02 13:14:28

+0

我从F5开始。啊没有意识到你可以切换日志记录。我会试试这个,然后回来,谢谢。 – 2015-02-02 13:17:28

相关问题