c# - 释放静态 WCF 资源
问题描述
我已声明静态资源如下:
public DiagnosticModule : TestModule
{
private static ChannelFactory<IDiagnosticService> _diagnosticsChannelFactory;
private static ChannelFactory<IDiagnosticService> DiagnosticsChannelFactory => _diagnosticsChannelFactory ?? throw new FaultException<ApciFault>(new Fault{ FaultMessage = "Diagnostic Service Channel is NOT initialized yet" },string.Empty);
static DiagnosticModule()
{
.............
_diagnosticsChannelFactory = new ChannelFactory<IDiagnosticService>(new NetTcpBinding(SecurityMode.None),endPoint);
.............
}
public static void func1(...)
{
IDiagnosticService v5DiagnosticInformationClient = null;
try
{
v5ClearDiagnosticInformationClient = DiagnosticsChannelFactory.CreateChannel();
...................
((IClientChannel)v5ClearDiagnosticInformationClient).Close();
}
catch(Exception e)
{
((IClientChannel)v5ClearDiagnosticInformationClient).Abort();
}
}
DiagnosticModule 类中的所有函数都是静态的,我正在寻找一种调用方法,以便可以关闭在静态构造函数中实例化的工厂:
DiagnosticsChannelFactory.Close();
在类中何处调用上述代码段?
解决方案
推荐阅读
- firebase - 无法在 Firebase Firestore 安全规则中使用逻辑 OR 运算符 - 条件始终评估为“假”
- magento - 将 magento 2.1.7 升级到 2.2.5 后出现错误
- android - BottomNavigationView 显示项目问题
- firebase - 将用户参数“值”链接到 Firebase 事件控制台中的事件值
- nginx - 基于响应的 Nginx 上游重试
- c# - 在 IIS 服务器上托管网站时无法创建数据库。在本地它正在工作
- python - 如何在 Openpyxl 中获取当前活动工作表的名称
- apache-spark - 当我尝试从检查点重新启动作业时,触发广播变量的类型应该是数字还是字符串
- android - 在构建的 APK 的根目录中包含一个文件
- tensorflow - Tensorflow 1.11 需要 CUDA 9.0 的 CuDNN 7.2,但是没有这样的库