C# 事件行动<;T>;在UWP?

C# 事件行动<;T>;在UWP?,c#,uwp,C#,Uwp,在.net代码中,我为测试人员提供了选择如何使用应用程序日志的方法。 看起来像这样 public static event Action<string> DebugEvent; internal static void InvokeDebugEvent(string message) { DebugEvent?.Invoke(message); } 现在我可以做这样的事情(例如) 或者这个 Core.DebugEvent+=list.Ad

在.net代码中,我为测试人员提供了选择如何使用应用程序日志的方法。 看起来像这样

 public static event Action<string> DebugEvent;

    internal static void InvokeDebugEvent(string message)
    {
        DebugEvent?.Invoke(message);
    }
现在我可以做这样的事情(例如)

或者这个

Core.DebugEvent+=list.Add;
但如果我尝试在UWP中执行此操作,我会出错:

事件添加方法。添加事件(System.Action)的参数类型为“System.Action”。事件添加方法的参数必须是Windows运行时委托。正在导出的模块是否编译为用于Windows元数据导出的winmdmodule(/target:winmdobj)


如何解决此问题?

相同的精确代码在UWP中不起作用?这很奇怪。你能提供完整的例子并指出错误发生的地方吗?这应该行得通。您好,您是否创建了一个不是Windows运行时的类库?UWP基于
Windows运行时
,您需要创建满足要求的类库,例如
类库(通用Windows)
。由于您的事件是公共的,C#将其视为Windows运行时组件的公共接口的一部分,但Windows运行时支持的事件除外。您可以声明与Windows运行时兼容的自定义委托,也可以声明事件私有或内部,以表示您不希望Windows运行时公共接口的事件部分。1)这是一个共享项目2)代码不是由我编写的,我只需要为测试日志添加一个接口(由于这个原因,只有公共的)3)如果你在类库(uwp)中测试这段代码,一切都很好。在uwp中,如何委托“外部”日志Hi@EgorPetrov,您正在使用的共享项目的依赖关系框架是什么?此错误看起来像是由于不同的目标平台而导致的转换错误。你能提供完整的代码供参考吗?我在一个UWP项目中测试了你的代码,它可以正常编译。同样的代码在UWP中不起作用?这很奇怪。你能提供完整的例子并指出错误发生的地方吗?这应该行得通。您好,您是否创建了一个不是Windows运行时的类库?UWP基于
Windows运行时
,您需要创建满足要求的类库,例如
类库(通用Windows)
。由于您的事件是公共的,C#将其视为Windows运行时组件的公共接口的一部分,但Windows运行时支持的事件除外。您可以声明与Windows运行时兼容的自定义委托,也可以声明事件私有或内部,以表示您不希望Windows运行时公共接口的事件部分。1)这是一个共享项目2)代码不是由我编写的,我只需要为测试日志添加一个接口(由于这个原因,只有公共的)3)如果你在类库(uwp)中测试这段代码,一切都很好。在uwp中,如何委托“外部”日志Hi@EgorPetrov,您正在使用的共享项目的依赖关系框架是什么?此错误看起来像是由于不同的目标平台而导致的转换错误。你能提供完整的代码供参考吗?我在一个UWP项目中测试了你的代码,它可以正常编译
Core.DebugEvent+=System.Console.WriteLine;
Core.DebugEvent+=list.Add;