静态变量变为null

时间:2016-02-09 11:32:41

标签: c# windows-phone-8 static-variables

我在解决方案中有两个项目(将它们视为project1和project2)。第一个项目(project1)包含一个包含全局变量的类

public static class GlobalTrackInfo
{
    public static string tracktitle { get; set; }
    public static Uri trackUri { get; set; }
}

我在project2中添加了project1的引用,并在project2的类中设置了静态变量的值,如下所示

GlobalTrackInfo.tracktitle = "myTitle";
GlobalTrackInfo.trackUri   = new Uri("www.example.com");

后来我尝试在project1的类中访问这些变量

Title = GlobalTrackInfo.tracktitle;

但似乎是空的。我究竟做错了什么? 是否不可能在不同的项目中使用全局变量?

1 个答案:

答案 0 :(得分:5)

在两个项目拥有自己的AppDomain时,您无法共享静态变量。根据MSDN文档:

  

默认情况下,使用DLL的每个进程都有自己的所有实例   DLL全局变量和静态变量..

如果你想这样做,最好使用其他方法,如网络通信(IPC)或类似的东西!