Определение событий C# в F#C#

Место общения программистов C#
Ответить
Anonymous
 Определение событий C# в F#

Сообщение Anonymous »

В классе C# у меня есть следующее определение

Код: Выделить всё

public event Action Output1;
Этот тип определения требуется стороннему приложению (TPA). Это приложение импортирует DLL, содержащую классы с определениями, подобными приведенным выше, и отображает эти поля графически.
Я хотел бы определить эти классы в F#. Итак, я попробовал официальный эквивалент

Код: Выделить всё

let output1 = Event()
[]
member __.Output1 = output1.Publish
но приложение TPA его не распознает. Я предполагаю, что TPA использует отражение, поэтому я проверил встроенную DLL C# и F# в ILSpy

Код: Выделить всё

public event Action Output1;

Код: Выделить всё

[CLIEvent]
public event FSharpHandler Output1
{
add
{
if (init@16 < 1)
{
LanguagePrimitives.IntrinsicFunctions.FailInit();
}
output1.Publish.AddHandler(value);
}
remove
{
if (init@16 < 1)
{
LanguagePrimitives.IntrinsicFunctions.FailInit();
}
output1.Publish.RemoveHandler(value);
}
}
Таким образом, причина, по которой TPA не распознает определение F#, заключается в этой разнице.
Отсюда и мой вопрос:
Есть ли способ определить член в F#, чтобы он был построен ТОЧНО как элемент C#?

Подробнее здесь: https://stackoverflow.com/questions/793 ... vents-in-f
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»