3

同じソリューション内の 2 つのプロジェクト間でプロパティを共有したいので、静的プロパティを持つ別の (3 番目の) プロジェクトに単純な静的クラスを作成しました。しかし、あるプロジェクトで設定すると、別のプロジェクトからプロパティの値を取得しようとすると、変更が発生しないようです。

プロパティは静的であるため、そのインスタンスは 1 つだけであるべきではありませんか? デバッグしたところ、実際に割り当てステートメントの後に値が設定されていますが、他のプロジェクトで参照されているときにこれが適用されないのはなぜですか? コードは次のとおりです。

    namespace Shared
    {
        public static class Shared
        {
           public static string old { get; set; }

        }
    }

最初のプロジェクトの割り当てステートメント

   Shared.Shared.old = messageData.Items[0].DateTime;

2番目のプロジェクトでプロパティにアクセスしようとしています

    if (messageData.Items[0].DateTime.CompareTo(Shared.Shared.old) > 0)
4

1 に答える 1

8

静的プロパティには、プロセスごとに (技術的には ごとに) 1 つのインスタンスAppDomainがあります。2 つの実行可能ファイル間で共有しようとしている場合、各プロセスは一意の値を取得します。

2 つの実行可能ファイル間で通信する場合は、何らかの形式のプロセス間通信を使用するか、外部ソース (ファイル システム、データベースなど) にシリアル化する必要があります。

于 2013-07-12T20:29:04.050 に答える