首页 > 解决方案 > 释放静态 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();

在类中何处调用上述代码段?

标签: c#wcf

解决方案


推荐阅读