怎么在ASP.NET中调用方法名

介绍

这期内容当中小编将会给大家带来有关怎么在ASP.NET中调用方法名,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

在写记录日志功能时,需要记录日志调用方所在的模块名,命名空间名、类名以及方法名,想到使用的是反射(涉及到反射请注意性能),但具体是哪一块儿还不了解,于是搜索,整理如下:

,
需要添加相应的命名空间:

代码如下:

使用系统;使用System.Diagnostics
,
使用System.Reflection;


如果仅是获取当前方法名,可以使用如下代码:

代码如下:

公共静态孔隙WriteSysLog (int,字符串内容)
{
,,,MethodBase mb=MethodBase.GetCurrentMethod ();
,,,字符串systemModule=Environment.NewLine;
,,,systemModule +=澳?槊?“+ mb.Module.ToString () + Environment.NewLine;
,,,systemModule +=懊占涿?“+ mb.ReflectedType。名称空间+ Environment.NewLine;
,,,//完全限定名,包括命名空间
,,,systemModule +=袄嗝?“;+ mb.ReflectedType。姓名+ Environment.NewLine;
,,,systemModule +=胺椒?“+ mb.Name;
,
,,,Console.WriteLine (“LogDate: {0} {1}: {2} {1} systemModule:{3}{1}内容:{4}“,DateTime。现在,环境。换行符、水平、systemModule、内容);
,,,Console.WriteLine ();
}

但一般情况下是获取此记录日志方法的调用方,因此需要使用下面的代码:(此方法仅为演示)

代码如下:

公共静态孔隙WriteSysLog(字符串内容)
{
,,,const int水平=1000;
,
,,,加亮党卫军=new加亮(真正的);
,,,//指数:0为本身的方法;1为调用方法;2为其上上层,依次类推
,,,MethodBase mb=ss.GetFrame (1) .GetMethod ();
,
,,,StackFrame [] sfs=ss.GetFrames ();
,,,字符串systemModule=Environment.NewLine;
,,,systemModule +=澳?槊?“+ mb.Module.ToString () + Environment.NewLine;
,,,systemModule +=懊占涿?“+ mb.DeclaringType。名称空间+ Environment.NewLine;
,,,//仅有类名
,,,systemModule +=袄嗝?“;+ mb.DeclaringType。名称+ Environment.NewLine;
,,,systemModule +=胺椒?“+ mb.Name;
,
,,,Console.WriteLine (“LogDate: {0} {1}: {2} {1} systemModule:{3}{1}内容:{4}“,DateTime。现在,环境。换行符、水平、systemModule、内容);
,,,Console.WriteLine ();
}

对于这一点儿,感觉有意思的是主要的调用方

代码如下:

System.AppDomain。_nExecuteAssembly(组装装配,String [] args)


,
通过

代码如下:

加党卫军=new加亮(真正);
StackFrame [] sfs=ss.GetFrames ();


可以得知。净程序的执行顺序:

代码如下:

System.Threading.ThreadHelper.ThreadStart ()
System.Threading.ExecutionContext。运行(ExecutionContext ExecutionContext ContextCallback回调,对象状态)
Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly ()
System.AppDomain。_nExecuteAssembly(组装装配,String [] args)


然后进入方法主要中。

另外,从MethodBase类还可以获取很多其他属性,可以自行定位到System.Reflection。MethodBase查看。
,
使用反射可以遍历获得类的所有属性名,方法,名成员名,其中一个有趣的小例子:通过反射将变量值转为变量名本身。

上述就是小编为大家分享的怎么在ASP.NET中调用方法名了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

怎么在ASP.NET中调用方法名