2010-07-16 1 views
2

제 경우에는 Lucene.Net을 검색 용으로 사용하고 있으며 IndexReader 및 IndexSearcher의 단일 인스턴스를 사용하려고합니다. 첫 번째 쿼리에 대해 한 번 인스턴스화 한 다음 다시 사용할 수있는 메서드에서 어디로 이동해야합니까?IIS 7 및 전역 변수 (싱글 톤)에서 호스팅하는 WCF 서비스

public static List<MyType> GetIndexMatches(string fullTextIndexPath, string keyWord) 
     { 
      IndexSearcher searcher = null; 
      IndexReader reader = null; 
      try 
      { 
       searcher = new IndexSearcher(fullTextIndexPath); 
       reader = IndexReader.Open(fullTextIndexPath); 
... 

답변

0

서비스 수준 (웹 메서드 수준 아님)에 정적으로 만들려고 했습니까?

0

IoC (Inversion of Control)에 익숙하지만 Castle Windsor 또는 Ninject 2와 같은 컨테이너를 사용하는 경우 확실하지 않습니다 (둘 다 WCF와 잘 통합되며 WCF 서비스 생성을 인계받을 수 있음). 컨테이너를 통한 인스턴스), IndexSearcher 및 IndexReader에 대한 일부 주입 가능 종속성을 구성 할 수 있습니다. 그러한 컴포넌트를 정의 할 때, 당신은 그들에게 싱글 톤의 "라이프 스타일"을 부여 할 수 있습니다. IoC 컨테이너를 사용하면 동일한 컴포넌트 인스턴스를 필요로하는 종속 클래스에 삽입 할 수 있고 애플리케이션 전체에 걸쳐 싱글 톤 컴포넌트를 쉽게 재사용 할 수 있다는 이점이 있습니다.

관련 문제