आप नहीं कर सकते। आप केवल valid F# expression कह सकते हैं, कोड उद्धृत कर सकते हैं। टाइप परिभाषाओं को कोड के रूप में नहीं माना जाता है, लेकिन परिभाषाएं।
आप क्या करना चाहते हो सकता है क्या एक प्रकार के सदस्यों पर डाल दिया जाता है ReflectedDefinition
विशेषता:
type MyType (name : string) =
[<ReflectedDefinition>] member x.Name = name
आपको लगता है कि है ReflectedDefinition
सदस्यों की एएसटी को पुनः प्राप्त करना चाहते हैं तो आप Expr.TryGetReflectedDefinition
फ़ंक्शन का उपयोग कर सकते हैं।
उदा, इस नमूना कोड प्रिंट MyType
के सभी परिलक्षित परिभाषा सदस्यों की ASTs:
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 _ ->()
()