3

我需要在托管服务启动后尽快初始化 wcf 服务类中的一些结构。

现在我将它托管在 WinForms 应用程序中,并在那里初始化这个静态结构。

ServiceHost host = new...
host.Open()...
new MyServiceClient().Initialize();

但我确信有更好的方法来做到这一点。我现在知道这是一个不优雅的解决方案......也许小 wcf-client 作为 Windows 进程运行?(这个客户端应该只负责调用这个初始化方法)

4

1 回答 1

0

您可以使用服务的构造函数来执行所需的任何初始化工作。

// The service
public class MyService : IMyService {
    // Constructor
    public MyService() {
        // Initialize things here
    }
}

如果初始化工作应该只执行一次,则可以将构造函数设为静态。如果正在构建的东西不是静态的,您可以根据您的性能需求将服务设为单例。您可以使用以下代码来装饰服务:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] 
于 2012-07-05T03:45:06.533 回答