日期:2014-05-18  浏览次数:21007 次

如何获取调用方信息
假设方法A调用了方法B,调用的过程并不传递参数,有没有办法在方法B中可以获得A的信息,例如A的名称、程序集等信息。急~谢谢

------解决方案--------------------
试一下System.Diagnostics.StackFrame类和反射:

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 方法来获取调用当前程序集的程序集信息