静态属性不会保持不变?

时间:2013-07-12 20:25:44

标签: c#

我想在同一个解决方案中共享两个项目之间的属性,所以我在一个带有静态属性的单独(第三个)项目中创建了一个简单的静态类。但是,当我在一个项目中设置它时,当我尝试从另一个项目中获取属性的值时,似乎不会发生更改。

由于属性是静态的,不应该只有一个实例吗?我已经调试了,并且在赋值语句之后确实设置了值,为什么在其他项目中引用它时这不适用? 这是代码:

    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)

1 个答案:

答案 0 :(得分:8)

静态属性每个进程一个实例(技术上,每AppDomain个)。如果您尝试在两个可执行文件之间共享它,则每个进程都将获得唯一值。

如果要在两个可执行文件之间进行通信,则需要使用某种形式的进程间通信,或者序列化到某些外部源(文件系统,数据库等)。