3

さまざまな場所で見つけた例を使用して、タイププロバイダーを実装しようとしています。

私が望むのは、提供された引数を適切なプロパティに割り当てるコンストラクターを作成できるようにすることです。結果は、以下のタイプと同じことを行います。

type SomeType(arg1: int, arg2: string) = 
    member this.Arg1 = arg1
    member this.Arg2 = arg2

さまざまなアプローチを試しましたが、引数リストの最初の引数を渡すことができません。

ProvidedConstructor(
    parameters = parameters, 
    InvokeCode = (fun args -> ??)

これを実現するには、どのような種類のコードを呼び出す必要がありますか。それとも、別のアプローチを取る必要がありますか?

4

1 に答える 1

3

提供された型 (ProvidedTypeDefinition baseType引数に渡した型) の基になる実行時表現は何になりますか? はProvidedConstructor InvokeCode、式のリストを受け取り、基になる型の式を返す関数です。たとえば、ランタイム表現が 2 要素のタプルである場合、次のInvokeCodeようになります。

InvokeCode = (fun [arg1;arg2] -> <@@ (%%arg1:int), (%%arg2:string) @@>)

このチュートリアルを必ずお読みください

于 2013-11-06T10:52:36.913 に答える