Как создать провайдер типа F #, который можно использовать из C #?

Если я использую провайдеров типов F # из сборки FSharp.Data.TypeProviders 4.3.0.0, я могу создавать типы в очень простой библиотеке F #. Затем я могу использовать эти типы без какой-либо зависимости от сборки FSharp.Data.TypeProviders. Это довольно мило! Вот пример:

Я создал проект библиотеки F # под названием TryTypeProviders. Я положил это в .fs:

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

Затем я могу использовать библиотеку F # из проекта 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);
}

Я не смог найти ни одного рабочего примера того, как создать поставщика типов, подобного этому. Поставщики типов в FSharpx.TypeProviders недоступны из C #. Я предполагаю, что это стертые типы, а не сгенерированные типы. Я все еще немного неясен, на котором есть, но этоопределяется здесь как:

Generated types are real .NET types that get embedded into the assembly that uses the type provider (this is what the type providers that wrap code generation tools like sqlmetal use) Erased types are simulated types which are represented by some other type when the code is compiled.

Образцы изОбразец пакета F # 3.0 упоминается в MSDNруководство не работают для меня. Они строят, но когда я пытаюсь использовать их, я получаю ошибки.

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

Последний раз он был выпущен в марте 2011 года, и я предполагаю, что они еще не отражают окончательную версию поставщиков типов, поставляемую с Visual Studio 2012.

Поставщики F # Type выглядят как отличная технология, но нам нужна помощь в их создании. Любая помощь приветствуется.

Ответы на вопрос(1)

Ваш ответ на вопрос