由IIS 7和全局变量(单例)托管的WCF服务

在我的情况下,我使用Lucene.Net进行搜索,并希望使用IndexReader和IndexSearcher的单个实例。我应该从哪个方法移动它们,以便能够为第一个查询实例化一次,然后重用。
    public static List<MyType> GetIndexMatches(string fullTextIndexPath, string keyWord ) 
        {
            IndexSearcher searcher = null;
            IndexReader reader = null;
            try
            {
                searcher = new IndexSearcher(fullTextIndexPath);
                reader = IndexReader.Open(fullTextIndexPath);
...
    
已邀请:
您是否尝试将它们设置为静态存在于服务级别(而不是Web方法级别)?     
我不确定您是否熟悉IoC(控制反转),但是如果您使用像Castle Windsor或Ninject 2这样的容器(这两个容器都与WCF很好地集成,并且可以通过容器接管WCF服务实例的创建),您可以为IndexSearcher和IndexReader配置一些可注入的依赖项。在定义这样的组件时,您可以为他们提供单身人士的“生活方式”。使用IoC容器的好处是,您可以将相同的组件实例注入任何需要它们的依赖类,并轻松地在整个应用程序中轻松地重用单例组件。 温莎城堡 Ninject 2     

要回复问题请先登录注册