静态变量变为空

本文关键字:变量 静态 | 更新日期: 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)或类似的东西。