質問の件名を書いているときに、他のほとんど関連する投稿に出くわしました... MSDN http://msdn.microsoft.com/en-us/library/system.reflection.parameterinfo.aspxにつながります
しかし、必要なコードを抽出することはできませんでした
次のように、st と sf に基づくヘルパー メソッドでメソッド名を取得する方法を学びました。
public void setLogView(View ViewMode)
{
AAdToAppLog();
Lview_AH_AutomationLog.Sorting = SortOrder.Ascending;
ColumnHeader ColHeadRowNo = new ColumnHeader();
ColumnHeader ColHeadFunction = new ColumnHeader();
ColumnHeader ColHeadContent = new ColumnHeader();
ColumnHeader ColHeadTime = new ColumnHeader();
Lview_AH_AutomationLog.View = ViewMode;
Lview_AH_AutomationLog.Columns.Add(ColHeadRowNo);
Lview_AH_AutomationLog.Columns.Add(ColHeadFunction);
Lview_AH_AutomationLog.Columns.Add(ColHeadContent);
Lview_AH_AutomationLog.Columns.Add(ColHeadTime);
ColHeadRowNo.Text = "#";
ColHeadFunction.Text = "Function Name";
ColHeadContent.Text = "Content";
ColHeadTime.Text = "Time";
ColHeadRowNo.Width = 45;
ColHeadFunction.Width = 150;
ColHeadContent.Width = 150;
ColHeadTime.Width = 100;
}
public void AAdToAppLog(string FunctionOutPut = "N/A")
{
string t = DateTime.Now.ToString("mm:ss.ff");
string h = DateTime.Now.ToString("HH");
ListViewItem FirstCell= new ListViewItem();
FirstCell.Text =h+":" +pre0Tosingle_9(LogCounter.ToString());//Another helper puts 0 infront <=9 digits
Lview_AH_AutomationLog.Items.Insert(0, FirstCell);
StackTrace st = new StackTrace();
StackFrame sf = st.GetFrame(1);
string FunctionName = sf.GetMethod().ToString().Replace("Void", "").Replace("System.Windows.Forms.", "");
FirstCell.SubItems.Add(FunctionName);
FirstCell.SubItems.Add(FunctionOutPut);
FirstCell.SubItems.Add(t);
LogCounter++;
}
だから私が望むすべての方法で私はただ入れます
AddToAppLog()
そのメソッドには AddToAppLog() への呼び出しが含まれており、(ListView 経由で) メソッドの名前をレポートし、呼び出しの時間を追加しました。
そのヘルパー メソッドの実装について、この投稿で対処したいことが 2 つあります: sf.GetMethod から受信した "FunctionName" は、特定のメソッドのパラメーターの型をスローするという点で優れています。 parameter.typeのFather + Grandfather + Great-Grandfatherが含まれていますが、一番下の Type のみが必要です:
System.Windows.Forms.View
これは最も短いものの1つです(:そして、.Replace()で遊んで自分でViewにアクセスしようとしたので、それを取り除く別の方法または実際に同じファミリーの別の方法で、上記の方法で抽出するか、または最もよく使用される可能性のあるすべての型を含むリストを使用して、stringReplace で foreach を実行できますか?
さらに重要なことに、メソッド(パラメータ名)も取得するにはどうすればよいですか?
よろしくお願いします!
パラメータ名を取得する簡単な構文のわかりやすい例を誰かが表示できますか?