从主机 WinForms 程序访问自承载 WCF 服务

Accessing a Self-Hosted WCF Service From the Host WinForms Program

我已经为 运行 WCF 服务创建了一个 Windows Forms 应用程序,该服务基本上完全由同一台机器上 运行 的单个软件使用,并且我还希望托管应用程序充当 "dashboard",为了透明起见,它会显示有关收到的请求的相关状态更新。然而,尽管 Windows Forms 应用程序用于启动和停止服务,但我无法让它以任何其他有意义的方式与之交互。

一些 notes/what 我试过:

对于含糊其词,我深表歉意,但我基本上是尝试访问服务对象,然后是服务本身。我是不是遗漏了什么或者是否有更好的方法来做到这一点?

谢谢,

GBB

编辑:为清楚起见/我最终采用的解决方案 - 将主机 window 引用设置为主机 window 的 class 的静态成员,可由服务。

public partial class frmMainWindow : Form
{
    public static frmMainWindow CurrentInstance;
    ServiceHost serviceHost;        

    public frmMainWindow ()
    {
        InitializeComponent();
        CurrentInstance = this;            
    }

    void StartService()
    {
        // service host stuff here for starting TestServer service
    }

    void StopService()
    {
        // stop the service
    }

    // update the status textbox in the host form
    public void SetStatus(string status)
    {
        textStatus.Text = status;
    }



[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class TestServer : ITestServer
{
    frmMainWindow HostWindow = null;

    public TestServer ()
    {
        HostWindow = frmMainWindow .CurrentInstance;
        HostWindow.SetStatus("Service started");
    }

已编辑的原始解决方案 post - 将对主机 window 的引用设置为主机 window 的 class 的静态成员。