我正在尝试使用在不同地方找到的示例来实现类型提供程序。
我想要的是能够创建一个构造函数,它将提供的参数分配给正确的属性。结果将执行与以下类型相同的操作。
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) @@>)
请务必阅读本教程