在WCF服务应用程序项目中初始化

本文关键字:初始化 项目 应用程序 WCF 服务 | 更新日期: 2023-09-27 17:54:54

我有一个库,它定义了一些静态变量,如数据库地址,一些静态方法进行数据格式化。

我的WCF服务将使用该库并打开数据库连接。问题是,这个库中的静态变量(如Database address)没有初始化,必须在应用程序启动时通过读取服务器上的文件来初始化。

在ASP。我可以初始化全局中的所有东西。asax的Application_Start,在Silverlight的客户端,我可以初始化App.xml的Application_Startup中的一切。但是如何在WCF服务应用程序项目中初始化呢?

这个WCF服务应用程序将与Silverlight一起使用,可能包含多个WCF服务,如果我在WCF服务构造函数中初始化,那么我必须为每个服务做同样的事情....

提前感谢,

在WCF服务应用程序项目中初始化

有多种方法可以做到这一点。您可以:

  1. 使用自定义ServiceHostFactory在创建ServiceHost之前初始化库。
  2. 在ServiceLibrary中的一个类中使用静态构造函数(参见http://msdn.microsoft.com/en-us/library/k9x6w0hc.aspx),并确保该类型在需要使用需要初始化的库之前以某种方式被访问(因为这会调用静态构造函数)。
  3. 创建一个自定义的WCF ServiceBehavior来进行初始化,并将其应用于ServiceLibrary中的所有相关服务。(恕我直言,这是最优雅的方式…)