2011-08-25 2 views

答えて

1

名前ツリーにはすべてのタイプが含まれています。それを自分でトラバースしてフィルタリングすることもできますし、GetTypeBuildersメソッドを呼び出すこともできます。ドン・レバの答えに加えて

[ Nemerle.MacroUsage 
    (Nemerle.MacroPhase.WithTypedMembers 
    , Nemerle.MacroTargets.Assembly 
    ) 
] 
macro ListTypes() 
{ 
    def PrintNameTree(node, depth) 
    { 
     repeat (depth) 
      Write(" "); 
     Write("|"); 
     WriteLine(node.PartName); 
     unless (node.Children == null) 
     { 
      foreach (child in node.Children.Values) 
       PrintNameTree(child, depth + 1); 
     } 
    } 

    def env = ImplicitCTX().Env; 
    def names = env.NameTree; 
    PrintNameTree(names.NamespaceTree, 0); 
} 
1

...

あなたは、メタデータをキャッシュを確保するためにNode.EnsureCached()メソッドを使用する必要があります。

関連する問題