代码之家  ›  专栏  ›  技术社区  ›  Pablo Retyk

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

  •  2
  • Pablo Retyk  · 技术社区  · 17 年前

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

    这就是它的样子:

    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 回复  |  直到 17 年前
        1
  •  8
  •   Jon Skeet    17 年前

    没有内置的功能。您希望静态变量在可执行文件的调用之间也保持不变,还是只在两个变量同时运行时保持不变?基本上,您正在研究“正常”的持久性机制(并考虑活动性——当一个进程需要重新加载其状态时进行检测)。

    我个人会尝试围绕这个设计,以避免甚至想要做。考虑使用一个单独的服务来代替两个应用程序的对话。

        2
  •  4
  •   shahkalpesh    17 年前

    这听起来很愚蠢。
    但如果需要,请将其写入公共位置的文本文件并从中读取。

        3
  •  3
  •   Arsen Mkrtchyan    17 年前

    在AppDomain之间共享数据的唯一方法是远程处理(wcf,.net远程处理等)。