如何将公共依赖项传递给每个WCF服务实例

问题描述 投票:0回答:1

我正在创建一个WCF主机应用程序。我的Service类定义为PerSession,如下所示:

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

我认为这意味着每次创建新会话时,都会实例化一个新的CalculatorService类实例。但是,如果我有一个所有实例都依赖的公共依赖项,那么将该依赖项传递给所有实例的最佳方法是什么?

ServiceHost类似乎没有将“状态”对象传递给所有实例?有没有使用静态变量或单例的另一种方法?

c# wcf
1个回答
1
投票

使用依赖注入。我没有使用过WCF,但是在WPF和UWP中使用了DI容器。这是一篇由Scott Hannen撰写的关于该主题的WCF相关文章。

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

以下是Microsoft在UWP应用程序中显示DI的示例。虽然细节可能会改变,但概念将保持不变。

https://github.com/Microsoft/InventorySample

© www.soinside.com 2019 - 2024. All rights reserved.