Gibt es einen Weg zu open
einem Namensraum von Typen, die von einem Typ Provider Umsetzung? Ich frage, weil einige der generierten Namenspfade im Code sehr lang und hässlich sind. Ich habe Typenkürzel verwendet, um dies zu mildern, aber offensichtlich ist dies ein manueller Prozess. Das Schlüsselwort F # Update: Wie in der Antwort und den Kommentaren darauf hingewiesen, ist das falsch. Sie können einen angegebenen Namespace öffnen. Ich hatte nicht bemerkt, dass ich tief verschachtelte Typen und keinen Namensraum suchte. open
unterstützt dies nicht. Gibt es einen anderen Weg?
Dies ist schwierig - parametrisierte Typ-Provider (wie die SQL-Standardanbieter oder die F # -Datenanbieter für XML und JSON) müssen alle Typen, die sie generieren (Tabellen, XML-Knoten usw.) innerhalb des generierten Haupttyps ablegen. Daher werden alle Typen, die Sie verwenden möchten, irgendwo als verschachtelte Typen des Haupttyps (mit Parametern) versteckt.
Dies ist sinnvoll - wenn Sie den Typ Provider mit mehreren Parametern verwenden, müssen die für jede Konfiguration generierten Typen separat sein.
Wie @kvb darauf hinweist, können Sie nicht open
einen verschachtelten Typ angeben, aber Sie können Typ-Aliase verwenden, um dies etwas weniger schmerzhaft zu machen. Zum Beispiel kann ich mit F # Data einen Alias R
definieren, mit dem ich auf alle generierten Domaintypen mit nur zwei zusätzlichen Zeichen zugreifen kann:
Tags und Links f# type-providers