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