我想在同一个解决方案中共享两个项目之间的属性,所以我在一个带有静态属性的单独(第三个)项目中创建了一个简单的静态类。但是,当我在一个项目中设置它时,当我尝试从另一个项目中获取属性的值时,似乎不会发生更改。
由于属性是静态的,不应该只有一个实例吗?我已经调试了,并且在赋值语句之后确实设置了值,为什么在其他项目中引用它时这不适用? 这是代码:
namespace Shared
{
public static class Shared
{
public static string old { get; set; }
}
}
第一个项目中的作业声明
Shared.Shared.old = messageData.Items[0].DateTime;
尝试访问第二个项目中的属性
if (messageData.Items[0].DateTime.CompareTo(Shared.Shared.old) > 0)
答案 0 :(得分:8)
静态属性每个进程一个实例(技术上,每AppDomain
个)。如果您尝试在两个可执行文件之间共享它,则每个进程都将获得唯一值。
如果要在两个可执行文件之间进行通信,则需要使用某种形式的进程间通信,或者序列化到某些外部源(文件系统,数据库等)。