クラス内またはクラスのディレクトリ内のすべてのメソッドのリストを生成したいと思います。私はまた、彼らの戻り値の型が必要です。それをテキストファイルに出力することは...誰でもツールのことを知っていますか? ImとVisual Studio 2008をIDEとして使用しているC#コードメソッドの型を持つクラスのメソッドのリストを生成
答えて
確かにType.GetMethods()を使用してください。あなたは、これはかなりの粗が、実行可能な出発点である等の非パブリックメソッドを取得するために、異なる結合フラグを指定することをお勧めします:
using System;
using System.Linq;
class Test
{
static void Main()
{
ShowMethods(typeof(DateTime));
}
static void ShowMethods(Type type)
{
foreach (var method in type.GetMethods())
{
var parameters = method.GetParameters();
var parameterDescriptions = string.Join
(", ", method.GetParameters()
.Select(x => x.ParameterType + " " + x.Name)
.ToArray());
Console.WriteLine("{0} {1} ({2})",
method.ReturnType,
method.Name,
parameterDescriptions);
}
}
}
出力:
System.DateTime Add (System.TimeSpan value)
System.DateTime AddDays (System.Double value)
System.DateTime AddHours (System.Double value)
System.DateTime AddMilliseconds (System.Double value)
System.DateTime AddMinutes (System.Double value)
System.DateTime AddMonths (System.Int32 months)
System.DateTime AddSeconds (System.Double value)
System.DateTime AddTicks (System.Int64 value)
System.DateTime AddYears (System.Int32 value)
System.Int32 Compare (System.DateTime t1, System.DateTime t2)
System.Int32 CompareTo (System.Object value)
System.Int32 CompareTo (System.DateTime value)
System.Int32 DaysInMonth (System.Int32 year, System.Int32 month)
(など)
興味のない方は、現在の型のすべてのメソッドを返すか、親クラスのすべてのパブリックメソッドも含めますか? –
@LoïcFaure-Lacroix:非常に簡単な方法でテストできます:)(自分では覚えていませんが、テストするのは簡単です...) –
ok、私はいくつかのテストを行いました。私はそれがすべてのパブリックメソッドを示していることは確かです。しかし、メソッドを宣言した型のように見える属性 "DeclaringType"があるようです。したがって、階層内の特定のオブジェクトをフィルタリングしたい場合は、それが可能でなければなりません。 –
これらのリストは非常に簡単に反映されています。例えばwith Type.GetMethods()
using (StreamWriter sw = new StreamWriter("C:/methods.txt"))
{
foreach (MethodInfo item in typeof(MyType).GetMethods())
{
sw.WriteLine(item.Name);
}
}
- 1. 静的メソッドを持つクラスまたは通常のメソッドを持つクラス
- 2. 静的メソッドのみを持つクラス - 列挙型かどうか
- 3. メソッドを持つWCF DataContractクラス
- 4. "hidden"メソッドを持つC#クラス
- 5. Javaでchar型のパラメータを持つメソッドを作成
- 6. 別のメソッドを持つクラスのPHPメソッドですか?
- 7. 異なるパラメータを持つ派生クラスのC++メソッド
- 8. Java Generics - 型引数を持つ静的メソッドの作成方法
- 9. この型の配列を返す型パラメータを持つメソッド
- 10. jsが、私は、静的メソッドを持つクラスを持つクラス
- 11. のJava - メソッドget(クラス)String型
- 12. クラス戻り値の型メソッド
- 13. 派生テンプレートクラスの条件付き型の特性を持つ基本クラスの仮想メソッドをオーバーライド
- 14. キャッチ派生クラス異なるメソッドと引数を持つ基本クラスの例外
- 15. 継承したクラスの戻り値の型を持つ継承されたメソッド
- 16. ActiveRecord - 単一テーブル継承を持つ派生クラスのメソッドを見つける
- 17. 私はApiControllerクラスに次のWeb APIメソッド持つウェブAPIメソッド
- 18. 1つのメソッドにSelectListを生成する2つのメソッドをリファクタリングします
- 19. ネストされたメソッドを持つメソッド参照のパラメータを持つメソッド
- 20. 私は2つのメソッドを持つクラスを作成したい変数
- 21. 静的メソッドを持つサービスオブジェクトの構造体、クラスまたは列挙型?
- 22. bodyまたはPOSTメソッドとしてのパラメータのリストを持つGETメソッド?
- 23. 複数のオブジェクト型を持つArrayListのメソッドへのアクセス
- 24. クラスのメソッドをリストするtrough mixin
- 25. ノンタイプのテンプレートパラメータを持つメソッド
- 26. 一般的なパラメータを持つメソッド間の型の不一致
- 27. 2つのほぼ同じメソッドを持つJava抽象クラス
- 28. 一般的なメソッドとプロパティを持つ2つのクラス
- 29. パラメータを持つ別のクラスのメソッドを呼び出す
- 30. インスタンスのみを持つクラスの静的メソッドを呼び出す
ソース(.cs)またはコンパイルされたアセンブリがありますか?大きな違いがあります... –
クラスのディレクトリは、そのコードが...少し複雑になることを示唆しています –
いいえ、それは多くを複雑にします;-p –