gpt4 book ai didi

f# - 正确调用引用ProvidedConstructor中的实例的方法

转载 作者:行者123 更新时间:2023-12-04 04:10:18 26 4
gpt4 key购买 nike

我如何在生成类型的提供程序中将代码正确地提供给ProvidedConstructorInvokeCode,这将等效于以下操作?

鉴于:

module Utils =
let someFun (s : string) (inst : obj) =
// Does something here...
()

我需要有效地生成类型:
type NewGeneratedType () as self =
inherit BaseType ()

do
Utils.someFun "Foo" (box self)

我已经调用了基本构造函数,但不知道如何在实例中正确切片并获得称为:
let ctor = ProvidedConstructor([])
let ci = baseType.GetConstructor(BindingFlags.Public ||| BindingFlags.Instance, null, [| |], null)
ctor.BaseConstructorCall <- fun args -> ci, args

// I do not know how to properly call this to match the constructor above
ctor.InvokeCode <- fun args -> <@@ () @@>

最佳答案

看起来像"this" argument is passed in as the last argument to the ctor

从那里开始,您的InvokeCode函数will get run和返回的报价被翻译。因此,我认为您所需要的只是:

ctor.InvokeCode <- fun args -> <@@ let me = Seq.last args @@>

关于f# - 正确调用引用ProvidedConstructor中的实例的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37042143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com