Bezdepbonusu7Программирование: статьи и ответы

Вопрос

WCF Ria DomainService - инициализация веб-службы при запуске

Автор вопроса: 0xbadf00dОтветов: 1

В настоящее время мой DomainService выполняет инициализацию ресурса каждый раз, когда к нему подключается клиент. Каждый клиент должен получить доступ к одному и тому же экземпляру этого ресурса. Я хотел бы инициализировать этот ресурс при запуске веб-службы. Есть ли шанс сделать это с WCF Ria Services?

EDIT: Хорошо, не упоминайте об этом. Я хотел использовать это для глобального объекта DbContext. В любом случае это не очень хорошая идея, потому что HttpApplication будет управлять несколькими потоками, которые будут одновременно обращаться к DbContext. Я изменю свою реализацию на подход "на поток", соответственно "на HttpContext". Спасибо в любом случае.

wcfdomainserviceswcf-ria-servicesria

Ответы

Ответ 1 · рейтинг 1 · Florian Lim

Вы можете определить класс, содержащий статическое свойство для этого ресурса. Затем в DomainService вы можете получить доступ к этому свойству. Затем он будет инициализирован только при первом доступе.

Пример:

public class ResManager {
    public static MyObject {...}
}

В доменном сервисе:

public IQueryable<SomeClass> GetSomeObjects()
{
    // you can access it here and it will not be initialized
    // every time the DomainService is called
    MyObject obj = ResManager.MyObject;
    return new List<SomeClass>().AsQueryable();
}

Если вы хотите инициализировать его при запуске службы, вы сможете сделать это в классе Global.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы