sách gpt4 ai đã đi

.net - 通过反射创建F#记录

In lại 作者:行者123 更新时间:2023-12-04 10:05:21 29 4
mua khóa gpt4 Nike

如何使用反射在F#中创建记录类型?谢谢

1 Câu trả lời

Bạn có thể sử dụng FSharpValue.MakeRecord [MSDN]创建一个记录实例,但是我认为F#中没有任何定义记录类型的东西。但是,记录会编译为简单的类,因此您可以像在C#中那样构建一个类。 TypeBuilder [MSDN]可能是一个很好的起点。

làm mới

Sẽ[]添加到类型中是使其成为记录所需的全部操作。这是如何在运行时执行此操作的示例。

let asmName = AssemblyName("Foo")
let asm = AppDomain.CurrentDomain.DefineDynamicAssembly(asmName, AssemblyBuilderAccess.RunAndCollect)
let moduleBldr = asm.DefineDynamicModule("Test")
let typeBldr = moduleBldr.DefineType("MyRecord", TypeAttributes.Public)
let attrBldr = CustomAttributeBuilder(
typeof.GetConstructor([|typeof|]),
[|box SourceConstructFlags.RecordType|])
typeBldr.SetCustomAttribute(attrBldr)
let typ = typeBldr.CreateType()
printfn "%b" <| FSharpType.IsRecord(typ) //true

关于.net - 通过反射创建F#记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8139223/

29 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com