用Windows进程使用wcf服务?

时间:2012-07-04 21:10:31

标签: wcf static wcf-client wcf-hosting

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

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]