3

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

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

    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)
4

1 回答 1

8

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

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

于 2013-07-12T20:29:04.050 回答