Предполагая, что вам нужны только привязки let
, а не какие-либо типы, определенные внутри модуля, вы можете использовать следующие фильтры для членов типа модуля:
open System.Reflection
open System.Runtime.CompilerServices
module Test =
type Marker = interface end
let x = 3
let f x = x * x
let m = List.map
let moduleType = typeof<Test.Marker>.DeclaringType
moduleType.GetMembers()
|> Array.filter (fun m -> m.DeclaringType = moduleType)
|> Array.filter (fun m -> m.IsDefined(typeof<CompilerGeneratedAttribute>, true) |> not)
|> Array.filter (fun m -> m.MemberType <> MemberTypes.NestedType)
|> Array.map (fun m -> m.Name)
Это вернет вам: [|"f"; "m"; "x"|]