Я пытаюсь добавить функцию в обработчик событий, которая вызовет функцию для нового события данных. Библиотека с обработчиком событий официально не поддерживает ядро .NET. Я надеюсь, что есть способ заставить его работать, несмотря на это, так как это сделало бы мою жизнь намного проще, если бы я мог использовать ядро .NET для своего проекта.
До сих пор я тестировал присоединение функции к событию в .NET core 2.2 и выдает следующую ошибку Operation is not supported on this platform
. Если я делаю что-то подобное, используя .NET Framework 4.7, это, кажется, работает отлично.
Ошибка по существу сводится к следующей строке кода
...
_api.OnNewData += (xml) => Console.WriteLine(xml);
...
Я пробовал разные варианты этого, но до сих пор я не нашел способ заставить его работать.
Глядя на трассировку стека, мы видим, что эта ошибка возникает в функции GetComObjectData
.
at System.Runtime.InteropServices.Marshal.GetComObjectData(Object obj, Object key)
at System.Runtime.InteropServices.ComEventsInfo.Find(Object rcw)
at System.Runtime.InteropServices.ComEventsInfo.FromObject(Object rcw)
at System.Runtime.InteropServices.ComEventsHelper.Combine(Object rcw, Guid iid, Int32 dispid, Delegate d)
at System.Runtime.InteropServices.ComAwareEventInfo.AddEventHandler(Object target, Delegate handler)
at The.Library.I.want.To.Attach.Function.To..ctor() in C:\path\to\code.cs:line 21
Есть ли способ обойти это, или я застрял с .NET Framework? Разве System.Runtime.InteropServices.Marshal.GetComObjectData
не поддерживает определенные функции для ядра .NET? Если да, где я могу найти дополнительную информацию по этому вопросу?