静态变量变为空
本文关键字:变量 静态 | 更新日期: 2023-09-27 18:33:55
我在一个解决方案中有两个项目(将它们视为项目1和项目2)。第一个项目 (project1) 包含一个保存全局变量的类
public static class GlobalTrackInfo
{
public static string tracktitle { get; set; }
public static Uri trackUri { get; set; }
}
我在 project2 中添加了对 project1 的引用,并在 project 2 类中为静态变量设置值,如下所示
GlobalTrackInfo.tracktitle = "myTitle";
GlobalTrackInfo.trackUri = new Uri("www.example.com");
后来我尝试在 project1 类中访问这些变量,作为
Title = GlobalTrackInfo.tracktitle;
但它似乎是空的。我做错了什么?是否可以在不同的项目中使用全局变量?
不能在两个项目之间共享静态变量,因为它们有自己的 AppDomain。根据 MSDN 文档:
默认情况下,使用 DLL 的每个进程都有自己的所有DLL 全局变量和静态变量。
如果你想这样做,最好使用另一种方法,如网络通信(IPC)或类似的东西。