• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ASP.NET中实现获取调用方法名

ASP.NET中实现获取调用方法名

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了js调用asp.net方法,asp.net,asp net培训,asp和asp.net的区别,零基础学asp.net等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了ASP.NET中实现获取调用方法名的技巧。分享给大家供大家参考。具体实现方法如下:

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

 
需要添加相应的命名空间:
using System.Diagnostics;
using System.Reflection;</div>
如果仅是获取当前方法名,可以使用如下代码:
{
    MethodBase mb = MethodBase.GetCurrentMethod();
    string systemModule = Environment.NewLine;
    systemModule += "模块名:" + mb.Module.ToString() + Environment.NewLine;
    systemModule += "命名空间名:" + mb.ReflectedType.Namespace + Environment.NewLine;
    //完全限定名,包括命名空间
    systemModule += "类名:" + mb.ReflectedType.FullName + Environment.NewLine;
    systemModule += "方法名:" + mb.Name;
 
    Console.WriteLine("LogDate: {0}{1}Level: {2}{1}systemModule: {3}{1}content: {4}", DateTime.Now, Environment.NewLine, level, systemModule, content);
    Console.WriteLine();
}</div>

但一般情况下是获取此记录日志方法的调用方,因此需要使用下面的代码:(此方法仅为演示)
{
    const int level = 1000;
 
    StackTrace ss = new StackTrace(true);
    //index:0为本身的方法;1为调用方法;2为其上上层,依次类推
    MethodBase mb = ss.GetFrame(1).GetMethod();
 
    StackFrame[] sfs = ss.GetFrames();
    string systemModule = Environment.NewLine;
    systemModule += "模块名:" + mb.Module.ToString() + Environment.NewLine;
    systemModule += "命名空间名:" + mb.DeclaringType.Namespace + Environment.NewLine;
    //仅有类名
    systemModule += "类名:" + mb.DeclaringType.Name + Environment.NewLine;
    systemModule += "方法名:" + mb.Name;
 
    Console.WriteLine("LogDate: {0}{1}Level: {2}{1}systemModule: {3}{1}content: {4}", DateTime.Now, Environment.NewLine, level, systemModule, content);
    Console.WriteLine();
}</div>

对于这一点儿,感觉有意思的是Main的调用方  
通过
StackFrame[] sfs = ss.GetFrames();</div>
可以得知.NET程序的执行顺序:
System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)</div>
然后进入方法Main中。

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

希望本文所述对大家的asp.net程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ASP.NET Core发送邮件的方法
  • ASP.NET 定时器回调方法的重入
  • ASP.NET数据库存取图片的方法
  • asp.net上传图片到服务器方法详解
  • ASP.NET中利用WebClient上传图片到远程服务的方法
  • asp.net创建事务的方法
  • Asp.Net修改上传文件大小限制方法
  • ASP.NET文件上传Upload的实现方法
  • ASP.NET中制作各种3D图表的方法
  • ASP.NET文件上传Upload的实现方法

相关文章

  • 2017-05-11asp.net在事件中启动线程来打开一个页面的实现方法
  • 2017-05-11ASP.NET 页面之间传递值方式优缺点比较
  • 2017-05-11asp.net动态加载用户控件,关于后台添加、修改的思考
  • 2017-05-11asp.net保存网上图片到服务器的实例
  • 2018-08-20jQuery+Asp.Net实现省市二级联动功能的方法
  • 2017-05-11关于前台调用后台事件__doPostBack函数
  • 2017-05-11关于ASP.NET中TreeView用法的一个小例子
  • 2017-05-11asp.net多选项卡页面的创建及使用方法
  • 2017-05-11asp.net分割字符串的几种方法小结
  • 2017-05-11在ASP.NET 中实现单点登录

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • ASP.NET MVC中jQuery与angularjs混合应用传参并绑定数据
    • Asp.net生成Excel文件并下载(更新:解决使用迅雷下载页面而不是文件的问题)
    • ASP.NET MVC中设置跨域访问问题
    • 微信公众平台开发之发送文本消息.Net代码解析
    • ajax.net对数据库的插入实例
    • 判断WebBrowser浏览器网页加载完成的处理方法
    • Asp.net中防止用户多次登录的方法
    • 在ASP.NET中支持断点续传下载大文件(ZT)源码
    • ASP.NET C#生成下拉列表树实现代码
    • Farpoint的简单用法简要概述

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有