Yapamazsınız. Sadece kod koyabilirsiniz, yani valid F# expression. Tip tanımları kod olarak değil, tanım olarak kabul edilir. Eğer yapmak isteyebilirsiniz ne
konur ReflectedDefinition
niteliğini türüdür üyeleri: Eğer ReflectedDefinition
bulunan üyelerin AST almak isterseniz Expr.TryGetReflectedDefinition
işlevini kullanabilirsiniz
type MyType (name : string) =
[<ReflectedDefinition>] member x.Name = name
. MyType
tüm yansıyan tanımı elemanlarının
Örn bu örnek kod yazdırılır Varış yerini- zi:
open Microsoft.FSharp.Quotations
open System.Reflection
type MyType (name : string) =
[<ReflectedDefinition>] member x.Name = name
let mis = typeof<MyType>.GetMembers()
for mi in mis do
try
match Expr.TryGetReflectedDefinition(mi :?> MethodBase) with
| Some(e) -> printfn "%A" e
| None ->()
with _ ->()
()