Definieren von C#-Ereignissen in F#
Posted: 12 Jan 2025, 07:09
In einer C#-Klasse habe ich die folgende Definition
Diese Art der Definition ist für eine Drittanbieteranwendung (TPA) erforderlich. Diese Anwendung importiert eine DLL, die Klassen mit Definitionen wie den oben genannten enthält, und stellt diese Felder grafisch dar.
Ich möchte diese Klassen in F# definieren. Also habe ich das offizielle Äquivalent ausprobiert
aber die TPA-Anwendung erkennt es nicht. Ich vermute, dass TPA Reflektion verwendet, also habe ich die in C# und F# erstellte DLL in ILSpy überprüft
Der Grund, warum TPA die F#-Definition nicht erkennt, ist dieser Unterschied.
Daher meine Frage:
Gibt es eine Möglichkeit dazu? Definieren Sie das Mitglied in F# so, dass es GENAU wie das C#-Mitglied aufgebaut ist?
Code: Select all
public event Action Output1;
Ich möchte diese Klassen in F# definieren. Also habe ich das offizielle Äquivalent ausprobiert
Code: Select all
let output1 = Event()
[]
member __.Output1 = output1.Publish
Code: Select all
public event Action Output1;
Code: Select all
[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);
}
}
Daher meine Frage:
Gibt es eine Möglichkeit dazu? Definieren Sie das Mitglied in F# so, dass es GENAU wie das C#-Mitglied aufgebaut ist?