c# - 在 WCF 服务应用程序项目中初始化?

标签 c# wcf

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

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

在 ASP.NET 中,我可以在 Global.asax 的 Application_Start 中初始化所有内容,在 Silverlight 的客户端中,我可以在 App.xml 的 Application_Startup 中初始化所有内容。 但是如何在 WCF 服务应用程序项目中初始化?

此 WCF 服务应用程序将与 Silverlight 一起使用,可能包含多个 WCF 服务,如果我在 WCF 服务构造函数中进行初始化,那么我必须对每个服务执行相同的操作....

提前致谢

国王

最佳答案

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

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

关于c# - 在 WCF 服务应用程序项目中初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5903843/

相关文章:

c# - WCF 无法序列化循环引用

WCF NetTCPBinding 与 HttpBinding 在线发送数据的差异

c# - Monogame 模棱两可的 Vector2

c# - 为什么接口(interface)不能标记为密封的?

c# - 比较 NaN 和 null 返回不合逻辑的值

c# - 有人有一种聪明的方法将 DTO 视为更多的 OO 类吗?

c# - Service Stack 的 DTO 模式真的有用吗?

c# - 无法识别的配置部分编译

c# - 以编程方式创建 Azure 推送通知中心

WCF 请求 channel ;到底发生了什么?