C# 反射总结 获取 命名空间 类名 方法名
一、获取 命名空间 类名 方法名
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Reflection; namespace GetMethodNameSpace
{
class Program
{
public static string GetMethodInfo()
{
string str = "";
//取得当前方法命名空间
str += "命名空间名:" + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Namespace + "\n";
//取得当前方法类全名
str += "类名:" + System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName + "\n";
//取得当前方法名
str += "方法名:" + System.Reflection.MethodBase.GetCurrentMethod().Name + "\n";
str += "\n"; StackTrace ss = new StackTrace(true);
MethodBase mb = ss.GetFrame().GetMethod();
//取得父方法命名空间
str += mb.DeclaringType.Namespace + "\n";
//取得父方法类名
str += mb.DeclaringType.Name + "\n";
//取得父方法类全名
str += mb.DeclaringType.FullName + "\n";
//取得父方法名
str += mb.Name + "\n";
return str;
} public static void Main()
{
Console.WriteLine(GetMethodInfo()); Console.ReadKey();
}
}
}
二、利用反射动态加载dll
头部引用加:
using System.Reflection;
Assembly asm = Assembly.LoadFrom(AppDomain.CurrentDomain.BaseDirectory+ "/DeclareDLL/YunDouTaxLib.dll");////我们要调用的dll文件路径
//加载dll后,需要使用dll中某类.
Type t = asm.GetType("namespace.classname");//获取类名,必须 命名空间+类名 //实例化类型
object o = Activator.CreateInstance(t); //得到要调用的某类型的方法
MethodInfo method = t.GetMethod("functionname");//functionname:方法名字 object[] obj =
{
Parameters[].TaxpayerName,
Parameters[].TaxpayerTaxCode,
Parameters[].CAPassword
};
//对方法进行调用
var keyData = method.Invoke(o, obj);//param为方法参数object数组
三,没有Assembly.LoadFrom 需要在程序中加引用
C# 反射总结 获取 命名空间 类名 方法名的更多相关文章
- c# 获取命名空间 类名 方法名
c# 获取命名空间 类名 方法名 转[http://blog.sina.com.cn/s/blog_3fc2dcc1010189th.html] 分类: Winform public static ...
- c# 获取方法所在的命名空间 类名 方法名
平时我们在记录日志的时候难免会需要直接记录当前方法的路径,以便查找,但是每次都输入方法名称非常的繁琐,同时如果修改了方法名称也要去手动修改日志内容,真的是劳命伤财啊,所以有了如下方法则可解决我们的大难 ...
- C# 获取方法所在的 命名空间 类名 方法名
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- java反射查看jar包中所有的类名方法名
不反编译,不用其他工具,用java反射查看jar包中所有的类名方法名,网上很多都报错,下面这个你试试看:话不多说直接撸代码: import java.lang.reflect.Field; impor ...
- C#基础-获得当前程序的 空间名.类名.方法名
string typeName = this.GetType().ToString();//空间名.类名 string typeName = this.GetType().Name;//类名 new ...
- ThinkPHP 3.2 中获取所有函数方法名,以及注释,完整可运行
<?php namespace Home\Controller; use Common\Controller\BaseController; class AuthController exten ...
- .NET 中获取调用方法名
在写记录日志功能时,需要记录日志调用方所在的模块名.命名空间名.类名以及方法名,想到使用的是反射(涉及到反射请注意性能),但具体是哪一块儿还不了解,于是搜索,整理如下: 需要添加相应的命名空间: us ...
- [No000085]C#反射Demo,通过类名(String)创建类实例,通过方法名(String)调用方法
using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using Sy ...
- PHP获取当前类名、函数名、方法名
PHP获取当前类名.方法名 __CLASS__ 获取当前类名 __FUNCTION__ 当前函数名(confirm) __METHOD__ 当前方法名 (bankcard::confirm) _ ...
随机推荐
- C++ map<key , value> key值为指针
STL中map的key能否用char *呢?当然可以! 在程序中需要用到一个map,本来是这样写的, map<string, int> mapStr; 为了追求效率,把string改成了c ...
- JS 显示周 几和 月 日
function getMyDay(date){ var week; ; var day = date.getDate(); ) week="周日" ) week="周一 ...
- java获取在各种编码下中文及英文的字符个数
https://blog.csdn.net/cuker919/article/details/17281691
- 设置TabBar图片
设置TabBar图片 // 拿到 TabBar 在拿到想应的item UITabBar *tabBar = _tabBarController.tabBar; UITabBarItem *item0 ...
- 2018年web最新面试知识点总结
00.行内元素有哪些?块级元素有哪些? 空(void)元素有那些? 行内元素:a b span img input select strong 块级元素:div ul ol li ...
- javascript鼠标滚动
firefox使用DOMMouseScroll,其他浏览器使用mousewheel当滚动时获取wheelDelta值,firefox使用detail:值为下滚3上滚-3,其他浏览器使用wheelDel ...
- [原创]Java性能优化权威指南读书思维导图3
[原创]Java性能优化权威指南读书思维导图3
- Delphi中COM自动化对象中使用事件
unit SrvUnit2; interface uses ComObj, ActiveX, AxCtrls, Classes, SrvEvent_TLB, StdVcl, Srvunit1; typ ...
- 关于Segmentation fault (core dumped)
有的程序可以通过编译,但在运行时会出现Segment fault(段错误).这通常都是指针错误引起的.但这不像编译错误一样会提示到文件一行,而是没有任何信息.一种办法是用gdb的step, 一步一步寻 ...
- framework中编译anroid工程并在模拟器上运行
1.在eclipse下创建android工程Hello并拷贝到“源码目录/packages/experimental”下面 2.在Hello工程目录下面创建Android.mk文件,内容如下: L ...