儿子 namespace NS{
CLASS CS{ public FS()
{
//谁用了自己呢?
A or B ? 来次饿快客深
}老子 A
namespace NA{
CLASS CA{ public FA()
{
NS.CS.FS();//我用了
}
老子 B
namespace NB{
CLASS CB{ public FB()
{
NS.CS.FS();//我也用了}大体就是一个方法能否知道谁使用的自己,能否具体到命名空间-类-方法-行数。
CLASS CS{ public FS()
{
//谁用了自己呢?
A or B ? 来次饿快客深
}老子 A
namespace NA{
CLASS CA{ public FA()
{
NS.CS.FS();//我用了
}
老子 B
namespace NB{
CLASS CB{ public FB()
{
NS.CS.FS();//我也用了}大体就是一个方法能否知道谁使用的自己,能否具体到命名空间-类-方法-行数。
调用的时候把自己的信息传过去(A OR B)
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Reflection;
using StackTrace = System.Diagnostics.StackTrace; CLASS CS{public FS()
{ MethodInfo mi=null;
mi = (MethodInfo) (new StackTrace().GetFrame(1).GetMethod());
//通过mi里某些属性可以找到谁调用了FS,你可以监控一下
}
Console.WriteLine("本方法的前一个方法的所在类的类型:"+type);
using System.Collections;
using System.ComponentModel;
using System.Diagnostics;
using System.Reflection;
using StackTrace = System.Diagnostics.StackTrace; CLASS CS{public FS()
{ MethodInfo mi=null;
mi = (MethodInfo) (new StackTrace().GetFrame(1).GetMethod());
MessageBox.Show(mi.DeclaringType.FullName);//通过mi里DeclaringType.FullName属性可以找到谁调用了FS
}
StackFrame frame = new StackFrame(-1);
就可以了。
{
class CS
{
public static string FS()
{
//谁用了自己呢?
//A or B ? 来次饿快客深
StackTrace st = new StackTrace();
StackFrame sf = st.GetFrames()[1];
return sf.GetMethod().Name;
}
}
}
namespace NA
{
class CA
{ public string FA()
{
return NS.CS.FS();//我用了
}
}
}
namespace NB
{
class CB
{ public string FB()
{
return NS.CS.FS();//我也用了
}
}
}private void button1_Click(object sender, EventArgs e)
{
NA.CA a = new NA.CA();
MessageBox.Show(a.FA()); NB.CB b = new NB.CB();
MessageBox.Show(b.FB());
}