Como faço para criar um provedor de tipo F # que pode ser usado em c #?

Se eu usar os provedores tipo F # do assembly FSharp.Data.TypeProviders 4.3.0.0, eu sou capaz de criar tipos em uma biblioteca F # muito simples. Eu sou então capaz de usar esses tipos sem qualquer dependência na montagem FSharp.Data.TypeProviders. Isso é muito fofo! Aqui está um exemplo:

Eu criei um projeto de biblioteca F # chamado TryTypeProviders. Eu coloquei isso no .fs:

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

Então eu posso usar a biblioteca F # de um projeto 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);
}

Eu não consegui encontrar nenhum exemplo de como criar um provedor de tipos como este. Os provedores de tipo em FSharpx.TypeProviders não estão acessíveis a partir de C #. Meu palpite é que eles são tipos apagados e não tipos gerados. Eu ainda sou um pouco confuso sobre qual é qual, mas édefinido aqui como:

Os tipos gerados são tipos .NET reais que são incorporados ao assembly que usa o provedor de tipos (isso é o que os provedores de tipo que envolvem ferramentas de geração de código, como o uso sqlmetal)Tipos apagados são tipos simulados que são representados por algum outro tipo quando o código é compilado.

As amostras doPacote de Amostra F # 3.0 mencionado no MSDNtutorial não estão trabalhando para mim. Eles constroem, mas quando tento usá-los, recebo erros.

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">

Foi lançado pela última vez em março de 2011 e meu palpite é que eles ainda não refletem a versão final dos provedores de tipo fornecidos com o Visual Studio 2012.

Os provedores de tipo F # parecem uma ótima tecnologia, mas precisamos de ajuda para criá-los. Qualquer ajuda é apreciada.

questionAnswers(1)

yourAnswerToTheQuestion