不同AppDomain中使用的类的静态变量

时间:2009-06-01 08:40:11

标签: c# appdomain

我有两个引用相同类库的可执行文件。在类库中,我有一个静态变量。 这个静态变量如何在两个不同的可执行文件上持续存在?

它的外观如下:

public class MyClass
{
    public static string MyVar;
}

应用1:

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

App 2:

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

3 个答案:

答案 0 :(得分:8)

没有任何内置功能可以做到这一点。您是否希望静态变量在可执行文件的调用中保持持久性,或者只是在两者同时运行时?基本上你正在研究“正常”持久性机制(并考虑活性 - 检测一个进程何时需要重新加载其状态)。

我个人会尝试围绕这个设计,以避免甚至想要这样做。考虑使用两个应用程序交谈的单独服务。

答案 1 :(得分:4)

这听起来很愚蠢 但是把它写在一个公共位置的文本文件中。需要时从中读取。

答案 2 :(得分:3)

分享应用程序域数据的唯一方法是远程处理(WCF,.net远程处理等)