在一个静态方法的内部,如何获得调用此静态方法的类名?

TimLeaf 2009-11-13 04:48:47
RT...
比如说SqlHelper提供的一些公共静态方法,我在其他地方写下如下代码:

public class A
{
public A()
{
DataSet ds = SqlHelper.ExecuteDataset(...);
}
}

我怎么做才能在SqlHelper的ExecuteDataset方法中取得类A的名字?
谢谢大家了...


PS.随着公司开发任务的减少,来这里的次数少多了...而且,好友们的热度也都是0...唉
...全文
93 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
我姓区不姓区 2009-11-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 timleaf 的回复:]
方法名。。。
[/Quote]
呵呵,看错了,改一下:

Console.WriteLine("当前调用该方法的类名为:{0}", st.GetFrame(i + 1).GetMethod().ReflectedType.Name);

TimLeaf 2009-11-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ojlovecd 的回复:]
参考:
C# codestaticvoid Main(string[] args)
{
A.AMethod();
}class A
{publicstaticvoid AMethod()
{
StackTrace st=new StackTrace();for (int i=0; i< st.FrameCount; i++)
{if (st.GetFrame(i).GetMethod()== MethodBase.GetCurrentMethod()&& i!= st.FrameCount-1)
{
Console.WriteLine("当前调用该方法的方法名为:{0}", st.GetFrame(i+1).GetMethod().Name);break;
}
}
}
}
[/Quote]
方法名。。。
TimLeaf 2009-11-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 biaofanwo 的回复:]
自己传进去呗。。
[/Quote]
[Quote=引用 4 楼 viena 的回复:]
传入
C# codepublicclass A
{public A()
{
DataSet ds= SqlHelper.ExecuteDataset("A",...);
}
}
[/Quote]
呃...传入,是可以啦...但是这是要增加方法的一个参数啊...既存代码可修改不起啊...

StackTrace 能详细说明一下吗?
我姓区不姓区 2009-11-13
  • 打赏
  • 举报
回复
参考:

static void Main(string[] args)
{
A.AMethod();
}

class A
{
public static void AMethod()
{
StackTrace st = new StackTrace();
for (int i = 0; i < st.FrameCount; i++)
{
if (st.GetFrame(i).GetMethod() == MethodBase.GetCurrentMethod() && i != st.FrameCount - 1)
{
Console.WriteLine("当前调用该方法的方法名为:{0}", st.GetFrame(i + 1).GetMethod().Name);
break;
}
}
}
}

ziminyang 2009-11-13
  • 打赏
  • 举报
回复
StackTrace stackTrace = new StackTrace();
StackFrame stackFrame = stackTrace.GetFrame(1);
MethodBase methodBase = stackFrame.GetMethod();

Console.WriteLine( " Method Name {0} ", methodBase.Name );
viena 2009-11-13
  • 打赏
  • 举报
回复
传入
public class A
{
public A()
{
DataSet ds = SqlHelper.ExecuteDataset("A",...);
}
}
SQL77 2009-11-13
  • 打赏
  • 举报
回复
反射?
gomoku 2009-11-13
  • 打赏
  • 举报
回复
StackTrace
biaofanwo 2009-11-13
  • 打赏
  • 举报
回复
自己传进去呗。。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧