|zyciis| 如何得到当前执行的方法的名称,谢谢 public static int Insert(int i) { //在这里得到这个方法的名称为 Insert }谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Class1 myClass = new Class1(); try { myClass.MyMethod(); } catch (Exception) { // Display file and line information, if available. StackTrace st = new StackTrace(new StackFrame(true)); Console.WriteLine(" StackTrace: " + st.ToString()); Console.WriteLine(" Line Number : " + st.GetFrame(0).GetFileLineNumber().ToString()); Console.WriteLine("-------------------------------------------------\n"); } 试试~~ Environment.StackTrace 可以取到当前运行层次里面有函数名 可以用foreach循环不知道到,看下面有没有人解决 Type t = typeof(YourTypeName); foreach(MethodInfo m in t.GetMethods()) { Console.WriteLine(m.Name); } 另外一个宏 __FUNCTION__ 是未转换的函数名,__FUNCDNAME__ 是转换后的函数名,例如下面程序 #include <iostream> using namespace std; void func() { cout << __FUNCDNAME__ << endl; cout << __FUNCTION__ << endl; } void main() { func(); } 这个是c++里面的,c#的还不知道 获取Environment.StackTrace属性来分析一下吧,应该可以的 得到的是这些: 在 System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 在 System.Environment.get_StackTrace() 在 _Default.Page_Load(Object sender, EventArgs e) 位置 e:\公司项目\胜道商城预定网\admin\Default.aspx.cs:行号 12 在 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) 在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) 在 System.Web.UI.Control.OnLoad(EventArgs e) 在 System.Web.UI.Control.LoadRecursive() 在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 在 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 在 System.Web.UI.Page.ProcessRequest() 在 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) 在 System.Web.UI.Page.ProcessRequest(HttpContext context) 在 ASP.default_aspx.ProcessRequest(HttpContext context) 位置 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\908c3fe2\81b8b544\App_Web_48jb0v48.2.cs:行号 0 在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) 在 System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(Exception error) 在 System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) 在 System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) 在 System.Web.HttpRuntime.ProcessRequestNoDemand(HttpWorkerRequest wr) 在 System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)这样怎么能`绝对正确的得得他的方法名呢? using System.Diagnostics;static void A() { StackTrace st = new StackTrace(); Console.WriteLine(st.GetFrame(0).GetMethod().Name); } static void B() { StackTrace st = new StackTrace(); Console.WriteLine(st.GetFrame(0).GetMethod().Name); } static void Main(string[] args) { A(); B(); } 最简单的方法: MethodBase mb = MethodBase.GetCurrentMethod(); Console.WriteLine(mb.Name); StackTrace stackTrace = new StackTrace(); StackFrame stackFrame = stackTrace.GetFrame(1); MethodBase methodBase = stackFrame.GetMethod(); Console.WriteLine( " Method Name {0} ", methodBase.Name ); asp.net 论坛编辑器 调用webservice 时如何终止上次的调用重新调用函数 正则 \s*<aa\s*.*>\s*.*<\/aa> 如何只读取 是aa 的标签 datalist绑定问题 在线等~ 怎么样连接远端Access数据库(在线等) 急!急!能不能,怎么样才能在ASP.NET 里 调用 delphi平台下编译的dll文件里的库函数 ? 请问用asp.net与javascript怎么做QQ式菜单 帮看一下这个域名值多少钱? 关于网页的自动完成 请教关于下拉菜单的问题! 如何过滤论坛中的脏字 非哥 加分 非哥说的太好了
Class1 myClass = new Class1();
try
{
myClass.MyMethod();
}
catch (Exception)
{
// Display file and line information, if available.
StackTrace st = new StackTrace(new StackFrame(true));
Console.WriteLine(" StackTrace: " + st.ToString());
Console.WriteLine(" Line Number : " +
st.GetFrame(0).GetFileLineNumber().ToString());
Console.WriteLine("-------------------------------------------------\n");
} 试试~~
里面有函数名
不知道到,看下面有没有人解决
foreach(MethodInfo m in t.GetMethods())
{
Console.WriteLine(m.Name);
}
#include <iostream>
using namespace std;
void func()
{
cout << __FUNCDNAME__ << endl;
cout << __FUNCTION__ << endl;
}
void main()
{
func();
} 这个是c++里面的,c#的还不知道
在 System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
在 System.Environment.get_StackTrace()
在 _Default.Page_Load(Object sender, EventArgs e) 位置 e:\公司项目\胜道商城预定网\admin\Default.aspx.cs:行号 12
在 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
在 System.Web.UI.Control.OnLoad(EventArgs e)
在 System.Web.UI.Control.LoadRecursive()
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
在 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
在 System.Web.UI.Page.ProcessRequest()
在 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
在 System.Web.UI.Page.ProcessRequest(HttpContext context)
在 ASP.default_aspx.ProcessRequest(HttpContext context) 位置 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\908c3fe2\81b8b544\App_Web_48jb0v48.2.cs:行号 0
在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
在 System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(Exception error)
在 System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
在 System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
在 System.Web.HttpRuntime.ProcessRequestNoDemand(HttpWorkerRequest wr)
在 System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)这样怎么能`绝对正确的得得他的方法名呢?
{
StackTrace st = new StackTrace();
Console.WriteLine(st.GetFrame(0).GetMethod().Name);
}
static void B()
{
StackTrace st = new StackTrace();
Console.WriteLine(st.GetFrame(0).GetMethod().Name);
} static void Main(string[] args)
{ A();
B();
}
Console.WriteLine(mb.Name);
StackFrame stackFrame = stackTrace.GetFrame(1);
MethodBase methodBase = stackFrame.GetMethod(); Console.WriteLine( " Method Name {0} ", methodBase.Name );