WCF Ria DomainService - инициализация WebService при запуске - PullRequest
0 голосов
/ 14 мая 2011

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

РЕДАКТИРОВАТЬ: Хорошо, не упоминайте об этом.Я хотел использовать это для глобального объекта DbContext.В любом случае, это не очень хорошая идея, потому что HttpApplication будет управлять несколькими потоками, которые будут одновременно обращаться к DbContext.Я изменю свою реализацию на подход «на поток» или «на HttpContext».В любом случае, спасибо.

1 Ответ

1 голос
/ 14 мая 2011

Вы можете определить класс, который содержит статическое свойство для этого ресурса. В 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.

...