我在解决方案中有两个项目(将它们视为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;
但似乎是空的。我究竟做错了什么? 是否不可能在不同的项目中使用全局变量?
答案 0 :(得分:5)
在两个项目拥有自己的AppDomain时,您无法共享静态变量。根据MSDN文档:
默认情况下,使用DLL的每个进程都有自己的所有实例 DLL全局变量和静态变量..
如果你想这样做,最好使用其他方法,如网络通信(IPC)或类似的东西!