Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# FSharp提供了构造函数参数_F#_Type Providers - Fatal编程技术网

F# FSharp提供了构造函数参数

F# FSharp提供了构造函数参数,f#,type-providers,F#,Type Providers,我正在尝试使用在不同地方找到的示例实现一个typeprovider 我想要的是能够创建一个构造函数,将提供的参数分配给正确的属性。结果将执行与下面类型相同的操作 type SomeType(arg1: int, arg2: string) = member this.Arg1 = arg1 member this.Arg2 = arg2 我尝试过不同的方法,但我就是无法通过args列表中的第一个参数 ProvidedConstructor( parameters =

我正在尝试使用在不同地方找到的示例实现一个typeprovider

我想要的是能够创建一个构造函数,将提供的参数分配给正确的属性。结果将执行与下面类型相同的操作

type SomeType(arg1: int, arg2: string) = 
    member this.Arg1 = arg1
    member this.Arg2 = arg2
我尝试过不同的方法,但我就是无法通过args列表中的第一个参数

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

必须调用什么样的代码才能实现这一点。或者我必须采取另一种方法吗?

您提供的类型(传递给
ProvidedTypeDefinition
baseType
参数的类型)的底层运行时表示形式是什么?
ProvidedConstructor
InvokeCode
是一个函数,它接受表达式列表并返回基础类型的表达式。例如,如果运行时表示是一个2元素元组,
InvokeCode
如下所示:

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

请务必阅读

嗨,古斯塔沃,谢谢你的回复。我不清楚的是Expr返回的是底层类型。