¿Cómo creo un proveedor de tipo F # que pueda usarse desde C #?

Si uso los proveedores de tipos F # del ensamblaje FSharp.Data.TypeProviders 4.3.0.0, puedo crear tipos en una biblioteca F # muy simple. Entonces puedo usar esos tipos sin ninguna dependencia en el ensamblaje FSharp.Data.TypeProviders. Eso es muy dulce! Aquí hay un ejemplo:

Creé un proyecto de biblioteca F # llamado TryTypeProviders. Pongo esto en el .fs:

module TryTypeProviders
type Northwind = Microsoft.FSharp.Data.TypeProviders.ODataService

Entonces puedo usar la biblioteca F # de un proyecto C #:

public static void Main()
{
    var c = new TryTypeProviders.Northwind();
    foreach (var cust in c.Customers)
        Console.WriteLine("Customer is: " + cust.ContactName);
    Console.ReadKey(true);
}

No he podido encontrar ningún ejemplo práctico de cómo crear un proveedor de tipos como este. Los proveedores de tipos en FSharpx.TypeProviders no son accesibles desde C #. Mi conjetura es que son tipos borrados y no tipos generados. Todavía estoy un poco confuso sobre cuál es cuál, pero esdefinido aquí como:

Los tipos generados son tipos .NET reales que se incorporan al ensamblaje que usa el proveedor de tipo (esto es lo que los proveedores de tipo que envuelven herramientas de generación de código como el uso de sqlmetal)Los tipos borrados son tipos simulados que están representados por algún otro tipo cuando se compila el código.

Las muestras de laPaquete de muestra F # 3.0 mencionado en la MSDNtutorial no estan trabajando para mi Ellos construyen, pero cuando trato de usarlos obtengo errores.

open Samples.FSharp.RegexTypeProvider<br>type PhoneNumberRegEx = CheckedRegexProvider< @"(?<AreaCode>^\d{3})-(?<PhoneNumber>\d{3}-\d{4}$)">
open Samples.FSharp.MiniCsvProvider<br>type csv = MiniCsvProvider<"a.csv">

Se lanzó por última vez en marzo de 2011 y supongo que aún no reflejan la versión final de los proveedores de tipos que se enviaron con Visual Studio 2012.

Los Proveedores de Tipo F # parecen una gran tecnología, pero necesitamos ayuda para construirlos. Cualquier ayuda es apreciada.

Respuestas a la pregunta(1)

Su respuesta a la pregunta