我正在测试用C#编写的SDK,该SDK附带了用.NET Core 2.0编写的演示控制台应用程序。我正在尝试在WPF中创建该应用程序的副本,并使代码尽可能保持相同。我在对SDK API的方法调用中添加了某些回调,但出现了此异常:无法编组“参数#3”:无法编组泛型类型。这是从对方法内部的Marshal.GetFunctionPointerForDelegate进行调用。我没有更改任何代码,它正在他们的演示应用程序中运行,并在我的系统中引发异常。这是方法调用:
_tracking_callback_id =
video_worker.addTrackingCallback(
TrackingCallback,
this);
这是其API中定义的回调本身:
public delegate void TrackingCallback(int stream_id, int frame_id, List<RawSample> samples, List<bool> samples_weak, List<float> samples_quality, object userdata);
当我为他们的演示制作.NET Framework控制台应用程序副本时,也会发生这种情况,这表明它与.NET Core有关,但我不确定是什么。