Как передать общую зависимость каждому экземпляру службы WCF - PullRequest
0 голосов
/ 11 марта 2019

Я создаю приложение WCF Host. Мой класс Service определен как PerSession примерно так:

[ServiceBehavior(InstanceContextMode=InstanceContextMode.PerSession)]   
public class CalculatorService : ICalculatorInstance   
{   
    //...  
}  

Я предполагаю, что это означает, что каждый раз, когда создается новый сеанс, создается новый экземпляр класса CalculatorService. Однако если у меня есть общая зависимость, от которой будет зависеть весь экземпляр, каков наилучший способ передать эту зависимость всем экземплярам?

Класс ServiceHost, похоже, в любом случае не передает объект "состояния" всем экземплярам? Есть ли другой способ без использования статических переменных или синглетонов?

1 Ответ

1 голос
/ 11 марта 2019

Использовать инъекцию зависимостей. Я не работал с WCF, но в WPF и UWP используются DI-контейнеры. Вот статья, связанная с WCF, написанная Скоттом Ханненом, на эту тему.

http://scotthannen.org/blog/2016/04/13/wcf-dependency-injection-in-5-minutes.html

Вот пример, предоставленный Microsoft, показывающий DI в приложении UWP. Хотя детали могут измениться, концепции останутся прежними.

https://github.com/Microsoft/InventorySample

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