Jak utworzyć dostawcę typu F #, który może być używany z C #?

Jeśli korzystam z dostawców typu F # z zestawu FSharp.Data.TypeProviders 4.3.0.0, jestem w stanie tworzyć typy w bardzo prostej bibliotece F #. Mogę następnie użyć tych typów bez zależności od złożenia FSharp.Data.TypeProviders. To jest całkiem słodkie! Oto przykład:

Stworzyłem projekt biblioteki F # o nazwie TryTypeProviders. Umieściłem to w .fs:

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

Następnie mogę użyć biblioteki F # z projektu 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);
}

Nie udało mi się znaleźć żadnych działających przykładów tworzenia dostawcy typu takiego jak ten. Dostawcy typów w FSharpx.TypeProviders nie są dostępni z C #. Domyślam się, że są to wymazane typy i nie wygenerowane typy. Nadal jestem trochę rozmyty, na którym, ale tak jestzdefiniowane tutaj jako:

Wygenerowane typy są prawdziwymi typami .NET, które są osadzane w zespole, który używa dostawcy typu (to jest typ dostawców, którzy zawijają narzędzia generowania kodu, takie jak użycie sqlmetal)Wymazane typy są symulowanymi typami, które są reprezentowane przez inny typ podczas kompilacji kodu.

Próbki zF # 3.0 Sample Pack wymienione w MSDNseminarium nie pracują dla mnie. Budują, ale kiedy próbuję ich używać, dostaję błędy.

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

Ostatni raz został wydany w marcu 2011 roku i przypuszczam, że nie odzwierciedlają one jeszcze ostatecznej wersji dostawców typów dostarczonych z Visual Studio 2012.

Dostawcy typu F # wyglądają jak świetna technologia, ale potrzebujemy pomocy w ich budowaniu. Każda pomoc jest doceniana.

questionAnswers(1)

yourAnswerToTheQuestion