带有WCF接口的C#Windows服务中的全局对象
本文关键字:全局 对象 服务 C#Windows WCF 接口 带有 | 更新日期: 2023-09-27 18:26:21
我有一个带有WCF接口的Windows服务。现在,由于这个WCF接口是从服务应用程序托管的,我在将核心对象定义为全局变量时遇到了一些问题。
我已经在一个库中创建了主对象,目前它是一个带有静态实例成员的singleton。WCF服务将与静态实例接口。虽然这很好,但我并不是每个方法中都特别喜欢名为MyServiceBase.Istance的方法。做这件事最优雅的方法是什么?
我最好在程序Main
中实例化我的对象,并通过我的应用程序使其可用。在我以前的Visual Basic 6.0时代,我只会将其声明为全局静态。
在MyServiceBase类中执行以下操作:
public class MyServiceBase {
static MyServiceBase _instance;
public MyServiceBase () {
if ( _instance == null ) {
// do the initialization
_instance = this;
}
}
}
然后初始化包括调用构造函数,甚至不在任何地方存储引用。
// just create a new object which causes the initialization code to execute
new MyServiceBase ();
现在您不必每次调用都执行MyServiceBase.Instance。