【发布时间】:2016-04-22 23:31:33
【问题描述】:
我正在尝试构建我的第一个类似玩具的类型提供程序。我想要实现的是动态生成动态生成类型的属性。
collection
|> getItems
|> Seq.map(fun mapItem ->
let nestedType = ProvidedTypeDefinition(assembly, ns, "MyNestedType", None)
let ctor = ProvidedConstructor(List.Empty)
nestedType.AddMember ctor
mapItem.Value
|> Seq.map(fun pair ->
ProvidedProperty(fst(pair), typeof<string>,
GetterCode = fun [_] -> <@@ snd(pair) @@>))
|> Seq.toList
|> nestedType.AddMembers
ProvidedProperty(mapItem.Key, nestedType,
GetterCode = fun [map] ->
// ?? Runtime Exception
let inst = nestedType.GetConstructors().[0].Invoke([||])
<@@ inst @@>
))
|> Seq.toList
|> ty.AddMembers
ty
我应该如何实例化动态生成的类型?
【问题讨论】:
标签: f# type-providers quotations