mit benutzerdefinierten Marshaller in F #

9

Ich habe vor kurzem mit dem Marshalling in F # gespielt und zu meiner Überraschung endete ich mit Fehler FS0980: Benutzerdefinierte Marshaller können nicht im F # -Code angegeben werden. Erwägen Sie die Verwendung einer C # -Hilfsfunktion.

Nur Informationen zu dem Thema, das ich gefunden habe, sind F # 4.0 Spec (Seite 300)

  

Bei Anwendung auf einen Parameter oder einen Rückgabetyp   Gibt das Marshalling-Attribut für eine CLI an   P / Aufruf Stub-Deklaration.   Dieses Attribut kann sowohl in F # als auch in   importierte Baugruppen F # jedoch nicht   unterstütze die Spezifikation von "custom"   Marshaller.

Ich bin hauptsächlich an Gründen interessiert, die hinter der mangelnden Unterstützung von Custom Marshallers liegen, da ich mit der Einführung von C # assembly leben kann.

Kann jemand darüber klarstellen?

BEARBEITEN:

Beispielcode wie angefordert

%Vor%

Von dem, was ich bemerkt habe, genügt es, UnmanagedType.CustomMarshaler zu setzen, um eine Kompilierungszeitausnahme zu verursachen

    
Paweł Paluch 20.03.2016, 21:15
quelle

1 Antwort

2

Mit Blick auf den Compiler-Code scheint es das F # -Team zu sein Ich konnte mich nicht wirklich darüber entscheiden:

%Vor%

Es gibt keine Geschichte um diesen Code auf github. Mein Bauchgefühl ist, dass die Erklärung etwas wie "ungewöhnlicher Anwendungsfall mit einem billigen Workaround" sein würde. Sehr wahrscheinlich war es von Anfang an so, denn F # 2.0 spec hat auch die von Ihnen angegebene Zeile.

Versuchen Sie, ein Problem bei github zu melden. Vielleicht kann da jemand in Microsoft-Systemen etwas ausgraben.

    
scrwtp 21.03.2016, 22:54
quelle

Tags und Links