Windows运行时从其他库引发事件

本文关键字:事件 其他 运行时 Windows | 更新日期: 2023-09-27 18:08:35

我有一个库a,它有一些事件,我在我自己的库B中使用这个库,然后我有我的Windows运行时应用程序,它只引用库B

当事件从库A中引发时,我想在我的Windows运行时应用程序项目中捕获此事件。

有办法吗?

Windows运行时从其他库引发事件

您可以在Windows运行时应用程序中引用库A,因为库b需要它。

或者你可以把Events封装在b中。请看这里:

class Program
{
    public static void Main(string[] args)
    {
        // Register at B
        BLibClass.BEvent += MyMethod;
        // Something triggers A
        BLibClass.ATrigger();
        Console.ReadKey();
    }
    public static void MyMethod()
    {
        System.Console.WriteLine("Something happeneds!");
    }
}

这是A库:

public class ALibClass
{
    public delegate void HandleAEvent();
    public static event HandleAEvent AEvent;
    public static void ATrigger()
    {
        AEvent();
    }
}

下面是B库:

public class BLibClass
{
    public delegate void HandleBEvent();
    public static event HandleBEvent BEvent;
    private static void WhenAHappens()
    {
        BEvent();
    }
    static BLibClass()
    {
        ALibClass.AEvent += WhenAHappens;
    }
    public static void ATrigger()
    {
        ALibClass.ATrigger();
    }
}