using System; using System.Diagnostics; using System.Reflection; namespace MyTest { public class TestM { public void Test() { StackFrame fr = new StackFrame( 1, true); MethodBase mb = fr.GetMethod(); Console.WriteLine(mb.Name); Console.WriteLine(mb.DeclaringType.Assembly.GetName()); } } }
另外,也可以使用 System.Reflection.Assembly.GetCallingAssembly 方法来获取调用当前程序集的程序集信息
/* 如何在被调用方法中获取调用方的相关信息呢? 可以利用调用堆栈来获取这些信息,利用调用堆栈可以获取很多有用的信息。 */ // 实例: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Reflection; using System.Diagnostics; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click( object sender, EventArgs e) { MyTest t = new MyTest(); t.add( 1); } } public class MyTest { public void add( int i) { i++; StackTrace ss = new StackTrace( true); Type t = ss.GetFrame( 1).GetMethod().DeclaringType; MessageBox.Show(t.FullName); } } }
原文:http://www.cnblogs.com/johnsonton/articles/2323414.html
http://topic.csdn.net/u/20070828/19/606fdf97-7ec0-4fbe-a0d4-ec69372374cd.html