Разоблачение внутренностей приложения winforms через WCF

Я пытаюсь сделать свои первые шаги в IPC и WCF, и до сих пор я падаю лицом вниз. У меня есть приложение Winforms, которое я хотел бы использовать для удаленных абонентов. Приложение winforms имеет большую часть своей бизнес-логики, ограниченной одноэлементным, который заботится обо всей фоновой работе. Я хотел бы раскрыть некоторые функции через механизм IPC. WCF выглядит как путь вперед, поэтому я начал с этого.

Я попытался добавить проект WCF Service Library в свое решение, с помощью которого я хотел бы представить некоторые вызовы. Когда я запускаю проект Winforms в отладчике VS, он работает как обычно, и запускается WcfSvcHost. Я могу общаться с сервисом WCF с помощью WcfTestClient.

Однако, когда я пытаюсь получить доступ к одноэлементному коду, содержащему код, с которым я хотел бы общаться, мне кажется, что я получаю новый одноэлементный объект. Очевидно, я делаю это неправильно; Я предполагаю, что служба работает в другом процессе, поэтому нет реального общего кода и, следовательно, нет общего синглтона.

Я не уверен, как мне продолжать. Является ли мой выбор использования WCF для IPC неправильным? Должен ли я интегрировать конечные точки WCF в приложение Winforms? То, что я пытаюсь сделать, даже осуществимо?

РЕДАКТИРОВАТЬ: Я полагал, что это было настолько высокого уровня, а также настолько просто, что любой пример кода будет бесполезным. Я думаю, что я был неправ. Итак, некоторый код:

В сборке WinForms:

public partial class Form1 : Form
{
  public Form1()
    {
      InitializeComponent();
      label1.Text = MySingleton.Instance.InitedAt.ToString();
    }
}

public class MySingleton
{
  private static MySingleton instance = new MySingleton();
  private DateTime inited;

  private MySingleton()
  {
    this.inited = DateTime.Now;
  }

  public static MySingleton Instance
  {
    get
    {
      return instance;
    }
  }

  public DateTime InitedAt
  {
    get
    {
      return this.inited;
    }
  }
}

В сборке WCFServiceLibrary:

[ServiceContract]
public interface IApplicationProbe {

  [OperationContract]
  string DoesItWork();

  [OperationContract]
  string SingletonInited();
}

public class ApplicationProbe : IApplicationProbe {
  public string DoesItWork(){
    return "Why yes, yes it does";
  }

  public string SingletonInited(){
    return MySingleton.Instance.InitedAt.ToString();
  }
}

когда я запрашиваюSingletonInited через WcfTestClient я получаю InitedAt, который не совпадает с DateTime, как синглтон winforms.

Edit2:

У меня этот код работает как есть (с автоматически сгенерированными скаффолдингами вокруг Winforms). Метка в форме отображает время, отличное от времени, возвращенного вызовом WCF, демонстрируя, что это другой экземпляр.

Ответы на вопрос(2)

Ваш ответ на вопрос