静态变量变为null

Vis*_*abu 3 c# static-variables windows-phone-8

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

public static class GlobalTrackInfo
{
    public static string tracktitle { get; set; }
    public static Uri trackUri { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

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

GlobalTrackInfo.tracktitle = "myTitle";
GlobalTrackInfo.trackUri   = new Uri("www.example.com");
Run Code Online (Sandbox Code Playgroud)

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

Title = GlobalTrackInfo.tracktitle;
Run Code Online (Sandbox Code Playgroud)

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

Ali*_*yan 6

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

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

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