Nemerleの種類MacroTargets.Assembly
のマクロ属性内でアセンブリ内のすべての型を取得する方法はありますか?マクロ内のアセンブリ内のすべての型を列挙します
2
A
答えて
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()メソッドを使用する必要があります。
関連する問題
- 1. 列挙型内の列挙型
- 2. C#:別の列挙型の内部に1つの列挙型をラップしています(つまり別の列挙型をコピー/コピーしています...)
- 3. アセンブリ内の名前空間を列挙します。
- 4. C++:Xマクロを使用してクラス内で列挙型と文字列型を定義しますか?
- 5. QQmlEngine内のすべてのオブジェクトを列挙します
- 6. Lua内の列挙型ですか?
- 7. データム内の複数の列挙型
- 8. 列挙型内のパラメータへの参照
- 9. フォーム内のw2uiリモートソース列挙型フィールド
- 10. 構造体内の列挙型
- 11. 内部列挙型の戦略パターン
- 12. 列マクロ内のすべての3行目を追加する
- 13. DBの列挙型または列挙型の列挙型
- 14. アセンブリ内のすべてのResourceManagerを取得します。
- 15. 列挙型の列挙型名を取得します。
- 16. 列挙型を使用して配列内のアイテムを移動する
- 17. 列挙型を使用してフォルダ内のすべてのファイルを検索する
- 18. は、なぜ、すべての列挙型は、列挙型<e>
- 19. すべてのNetworkInterface JBossの内側に列挙常にISUP
- 20. するSystem.Reflection私はアセンブリ内のすべてのメソッドを列挙し、ツリービュー内のノードに追加しようとしている
- 21. 列挙型の列挙型の列挙型へのアクセス
- 22. C#クラス内の別の列挙型としてenumを設定する
- 23. MEFのAggregateCatalogまたはDirectoryCatalog内でアセンブリを列挙する方法は?
- 24. アセンブリ内の配列
- 25. ジェネリッククラス内でセットタイプの列挙型を宣言する方法
- 26. オブジェクト内のtypedef列挙型を使用するクラス
- 27. フィルタを使用して列挙型の列挙列を列挙する
- 28. アセンブリの構成間で列挙型を管理する
- 29. 列挙型の中の列挙型
- 30. 列挙型の列挙型の作成
タイトルにタグを付けるのではなく、重複しています。そのタグはそのためのものです。 –