我需要在托管服务开始后尽快初始化wcf服务类中的一些结构。
现在我在WinForms应用程序中托管它,并在那里初始化这个静态结构。
ServiceHost host = new...
host.Open()...
new MyServiceClient().Initialize();
但我确信有更好的方法可以做到这一点。我现在知道这是一个不太优雅的解决方案......也许很少有wcf-client作为windows进程运行? (此客户端应仅负责调用此初始化方法)
答案 0 :(得分:0)
您可以使用服务的构造函数来执行所需的任何初始化工作。
// The service
public class MyService : IMyService {
// Constructor
public MyService() {
// Initialize things here
}
}
如果初始化工作只应执行一次,则可以使构造函数为静态。如果构建的内容不是静态的,您可以根据您的性能需求将服务设置为单例。您可以使用以下代码修饰服务:
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]