Служба WCF, размещенная на IIS 7 и глобальные переменные (синглтоны) - PullRequest
2 голосов
/ 16 июля 2010

В моем случае я использую 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);
...

Ответы [ 2 ]

0 голосов
/ 16 июля 2010

Я не уверен, знакомы ли вы с IoC (Inversion of Control), но если вы используете контейнер, такой как Castle Windsor или Ninject 2 (оба они хорошо интегрируются с WCF и могут взять на себя создание экземпляров службы WCFчерез контейнер), вы можете настроить некоторые инъекционные зависимости для вашего IndexSearcher и IndexReader.При определении такого компонента, вы можете дать им «образ жизни» синглтона.Преимущество использования контейнера IoC заключается в том, что вы можете внедрить одни и те же экземпляры компонентов в любой зависимый класс, который в них нуждается, и легко с легкостью повторно использовать ваши одноэлементные компоненты во всем приложении.Виндзор

Ninject 2
0 голосов
/ 16 июля 2010

Вы пытались сделать их статичными, которые существуют на уровне сервиса (не на уровне веб-метода)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...