2

自分で作成したイベントを購読するのに少し問題があります。イベント自体は独自のクラスにあり、別のプロジェクトの別のクラスからサブスクライブできるようにしたいと考えています。作成されたクラスからサブスクライブできますが、別のプロジェクトの別のクラスからサブスクライブしようとしても何も起こりません。

どうすればこれを解決できるかについて、誰かが私にいくつかの指針を教えてもらえますか? 私は解決策を見つけようとしてGoogleのいたるところにいましたが、役に立ちませんでした:(。

4

4 に答える 4

1

アクションの代わりにEventHandlerデリゲートを使用してサンプルコードを試しました(システム名前空間で非ジェネリックアクションデリゲートが見つからなかったため)

以下のコードは、期待どおりに機能します。「Foofoo'd」を出力します。

多分それはアクションデリゲートですが、それは少し奇妙だと思います。

class Program
{
    static void Main()
    {
        Foo foo = new Foo();
        foo.Fooing += (object o, EventArgs e) => Console.WriteLine("Foo foo'd");

        foo.PleaseRaiseFoo();
    }
}

class Foo
{
    public event EventHandler Fooing;

    protected void OnFooing()
    {
        if (this.Fooing != null)
            this.Fooing(null, null);
    }

    public void PleaseRaiseFoo()
    {
        this.OnFooing();
    }
}
于 2009-06-19T17:43:10.737 に答える
0

あなたのクラスは別のプロジェクトにあるとおっしゃいましたが、イベント クラス (またはそのプロジェクトの他のクラス) を確認できますか? 他のプロジェクトを適切に参照していない可能性があります。

于 2009-06-19T18:03:20.270 に答える