如何在WCF中使用静态对象

本文关键字:静态 对象 WCF | 更新日期: 2023-09-27 18:18:53

我正在实现一个Log4Net工具包

使用:

  private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

public string MyFunc()
{
        log4net.Config.XmlConfigurator.Configure();
        log.Debug("function called on: " + DateTime.Now.ToShortDateString());
}

问题:

我总是需要调用:
 log4net.Config.XmlConfigurator.Configure();

在ASP。我只能在Session_Start事件中调用它一次,但是在WCF服务应用程序中该怎么做呢?

如何在WCF中使用静态对象

这取决于您的服务的InstanceContextMode和ConcurrencyMode。通常,WCF服务是无状态的(使用InstanceContextMode PerCall)。这将导致为每个调用创建一个新的服务对象,因此您必须为每个调用设置日志记录(例如在构造函数中)