Ich habe Probleme mit allen Typen, die in einer Assembly für einen F # Generative Type Provider erstellt wurden. Ich habe ein YouTube-Video erstellt, das dies demonstriert.
Die Fehlermeldungen, die ich bekomme, sind:
Ich verstehe nicht, weil der Typ definitiv in der Baugruppe ist. Zur Fehlerbehebung ist die Assembly eine sehr einfache C # -Dll. Der Code im Video ist über Git verfügbar:
git url: Ссылка
Git Zweig: Hilfe
Alle Vorschläge zur Fehlerbehebung werden geschätzt. Ich hoffe, auf einem F # Type weitere Fortschritte zu machen Provider für .proto-Dateien , aber ich bleibe dabei.
Ich habe einen kurzen Blick auf Ihren Code geworfen - wie ich in einem Kommentar erwähnt habe, wäre Ihnen die Verwendung der vom F # 3.0 Sample Pack definierten und in MSDN dokumentierten API-Version sehr hilfreich .
Im Grunde hat die API des rohen Typ-Anbieters eine Menge von Annahmen, die Sie nur schwer manuell verwalten können. Ich denke, dass das spezielle Problem, das Sie haben, ist, dass der Compiler in Ihrer Assembly einen Typ namens tutorial.Person
erwartet (da es der Rückgabetyp einer Methode in tutorial.AddressbookProto
ist, den Sie als generierten Typ angeben), aber es ist niemals in Ihre Baugruppe eingebettet.
Dies ist jedoch nur eines von mehreren Problemen. Wie Sie wahrscheinlich bemerkt haben, werden zusätzliche Fehler auftreten, wenn der Typ, den Sie definieren, anders als tutorial.AddressbookProto
heißt. Das liegt daran, dass Sie einen konkreten Typ als Rückgabewert von ApplyStaticArguments
verwenden. Normalerweise möchten Sie jedoch eine synthetische System.Type
-Instanz verwenden, die den vom Benutzer verwendeten Namespace und Typnamen genau widerspiegelt (z. B. in der API von AceditedTypes). co_de% class erbt von ProvidedTypeDefinition
und behandelt diese Buchhaltung).
Tags und Links f# type-providers