アセンブリ内の特定の属性を持つメソッドをスキャンすることはできますか?私は現在Visual C++プロジェクトに取り組んでいますが、C#もうまくいきます。私は、今のところassualbly内のすべてのメソッドを見つける必要があります。 [XYZ]
が適用されます。何かご意見は?アセンブリ内の特定の属性を持つメソッドをスキャンすることはできますか?
2
A
答えて
3
私はMicrosoft Roslynを同様の作業に使用しました。それはかなり簡単にする必要があります。
サンプルコードが必要な場合はお知らせください。
、あまりにもこの記事を見てみましょう:
: http://blog.filipekberg.se/2011/10/20/using-roslyn-to-parse-c-code-files/リフレクションは、そのためにも使用することができ、GetCustomAttributesメソッドは、指定されたメンバーで定義されたすべての属性を返す...
さて、これを試してみてください
this.GetType().GetMethods()
ループトラフそれでなければなりませんすべてのメソッドとGetCustomAttributes
。残念ながら私は妻のラップトップにVisual Studioをインストールしていません:)
+0
こんにちは、アニマですよ。ちょうどいくつかのサンプルコードは本当に感謝しています。私はRoslynを使用していません。私は反射を使用したい。 – Jaggu
4
これを試してください。これは、特定の属性のための方法を取得するには
MemberInfo[] members = obj.GetType().GetMethods();
foreach (MemberInfo m in members)
{
if (m.MemberType == MemberTypes.Method)
{
MethodInfo p = m as MethodInfo;
object[] attribs = p.GetCustomAttributes(false);
foreach (object attr in attribs)
{
XYZ v = attr as XYZ;
if (v != null)
DoSomething();
}
}
}
2
使用リフレクションを任意のオブジェクトを検索し、属性をつかむだろうアセンブリへのパスを考えると
3
:これがロードされます覚えておいてください
static void FindAttributes(String^ assemblyPath)
{
Assembly^ assembly = Assembly::ReflectionOnlyLoadFrom(assemblyPath);
for each (Type^ typ in assembly->GetTypes())
{
for each (CustomAttributeData^ attr
in CustomAttributeData::GetCustomAttributes(typ))
{
Console::WriteLine("{0}: {1}", typ, attr);
}
}
}
アプリケーションドメインに使用するすべてのアセンブリが含まれているため、毎回独自のAppDomainでこのコードを呼び出す価値があります。
関連する問題
- 1. Amazon DynamoDB:ファイングレイン・アクセス・コントロール特定の属性を持つスキャン
- 2. 属性メソッド内の属性を持つクラスのクラス名を取得する
- 3. メソッドからスコープを持つクラス属性を定義する
- 4. 特定の属性を持つArraylistのアイテムをカウントする
- 5. PHP内の特定の属性を持つタグを置換するpreg_replace
- 6. プロパティでデータアノテーション属性を持つxsd.exeでアセンブリ内の型からXSDを生成
- 7. 特定のインスタンス属性のメソッドを上書きする
- 8. perlを使ってhtml内の特定の属性を持つ特定のタグに移動するには?
- 9. ActiveRecord:特定の属性値を持つレコードは1つだけですか?
- 10. XPath - 特定の値を持つ属性を取得する
- 11. 特定の属性を持つプロパティを表示するテンプレート?
- 12. XMLStarlet:特定の属性値を持つノードを編集する
- 13. 特定の属性を持つリンクを選択する
- 14. カスタム属性を持つアセンブリですべての型を取得
- 15. 属性内の特定の値を持つレコードを1つ持つグループ全体を省略するクエリ
- 16. 特定のDataAnnotationと特定の値を持つプロパティをループすることはできますか? .NETのC#
- 17. Doctrine 2 toArray()メソッドは、特性を持つまでですか?
- 18. 特定の値を持つ属性を持つ要素に属性を追加する
- 19. 特定の属性名と値を持つXElementをLINQで検索する
- 20. クラスのメソッドと属性を持つクラスは、Pythonではシングルトンですか?
- 21. 特定の属性を持つ要素を返すJDOM
- 22. C#XmlType(XmlType()の属性内の特殊なcharを持つエスケープ)属性
- 23. 属性を使用してメソッドをオーバーライドすることはできますか?
- 24. ここでこの1つの属性は、ルビクラスの複数の属性を保持していますか?
- 25. 特定の値を持つカスタム属性を持つ要素を見つけて置き換えます
- 26. 特定の値を持つ特定の属性を持つ要素を見つける方法
- 27. asp.netコア2の属性を持つメソッドをテストするには?
- 28. Scrapy - 特定の属性値を持つリンクからhrefを抽出します
- 29. Scrapy .css特定の属性名と値を持つ要素を選択する
- 30. 特定のクラスと属性を持つリンクを非表示にする
属性を検索している.NETアセンブリをスキャンするC++/CLIコードを探していますか? – user7116
@sixlettervariables:はい。 – Jaggu