статические переменные класса, используемые в разных доменах приложений - PullRequest
2 голосов
/ 01 июня 2009

У меня есть два исполняемых файла, которые ссылаются на одну и ту же библиотеку классов. В библиотеке классов у меня есть статическая переменная. Как эта статическая переменная может сохраняться в двух разных исполняемых файлах?

Вот как это выглядит:

public class MyClass
{
    public static string MyVar;
}

Приложение 1:

public class MyApp1
{
      public void SomeMethod()
      {
           MyClass.MyVar = "hello";
      }       
}

Приложение 2:

public class MyApp2
{
      public void SomeOtherMethod()
      {
           if(MyClass.MyVar == "hello")    
                DoSomething();
      }       
}

Ответы [ 3 ]

8 голосов
/ 01 июня 2009

Нет ничего встроенного для этого. Хотели бы вы, чтобы статические переменные были постоянными и при вызовах исполняемого файла, или только когда оба выполнялись одновременно? В основном вы смотрите на «нормальные» механизмы персистентности (и думаете о жизнеспособности - обнаружении, когда одному процессу необходимо перезагрузить свое состояние).

Я бы лично попытался придумать что-то подобное, чтобы даже не захотеть это делать. Подумайте о том, чтобы иметь отдельную службу, с которой взаимодействуют оба приложения.

4 голосов
/ 01 июня 2009

Это будет звучать глупо.
Но запишите его в текстовый файл в общем месте и прочитайте его при необходимости.

3 голосов
/ 01 июня 2009

Единственный способ обмена данными между доменами приложений Betwin - это удаленное взаимодействие (WCF, .net remoting и т. Д.)

...