【问题标题】:How to pass common dependency to every WCF service instance如何将公共依赖项传递给每个 WCF 服务实例
【发布时间】:2019-03-11 17:21:13
【问题描述】:

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

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

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

ServiceHost 类似乎并没有将“状态”对象传递给所有实例?不使用静态变量或单例还有其他方法吗?

【问题讨论】:

标签: c# wcf


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 2016-10-08
    相关资源
    最近更新 更多