自分で作成したイベントを購読するのに少し問題があります。イベント自体は独自のクラスにあり、別のプロジェクトの別のクラスからサブスクライブできるようにしたいと考えています。作成されたクラスからサブスクライブできますが、別のプロジェクトの別のクラスからサブスクライブしようとしても何も起こりません。
どうすればこれを解決できるかについて、誰かが私にいくつかの指針を教えてもらえますか? 私は解決策を見つけようとしてGoogleのいたるところにいましたが、役に立ちませんでした:(。
自分で作成したイベントを購読するのに少し問題があります。イベント自体は独自のクラスにあり、別のプロジェクトの別のクラスからサブスクライブできるようにしたいと考えています。作成されたクラスからサブスクライブできますが、別のプロジェクトの別のクラスからサブスクライブしようとしても何も起こりません。
どうすればこれを解決できるかについて、誰かが私にいくつかの指針を教えてもらえますか? 私は解決策を見つけようとしてGoogleのいたるところにいましたが、役に立ちませんでした:(。
アクションの代わりに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();
}
}
あなたのクラスは別のプロジェクトにあるとおっしゃいましたが、イベント クラス (またはそのプロジェクトの他のクラス) を確認できますか? 他のプロジェクトを適切に参照していない可能性があります。