c#:反射访问私有变量
2016-09-14 10:12
603 查看
反射是反射dll程序集中的信息
用反射可以做几件事,下面演示如何访问private
比如这有一个Class Library 叫TicketLibrary
里面有一个Class叫TicketInfo
TicketInfo.cs 里面有一个叫ticketList的private static List
正常是无法直接访问该变量的
但是可以使用反射
Program.cs
Assembly.LoadFrom 的是上面工程的dll路径
下面注释的两端代码一个是获取私有函数的
一个是获取AssemblyInfo的
用反射可以做几件事,下面演示如何访问private
比如这有一个Class Library 叫TicketLibrary
里面有一个Class叫TicketInfo
TicketInfo.cs 里面有一个叫ticketList的private static List
namespace ReflectTest { public class TicketInfo { private static List<String> ticketList = new List<String>() { "T1","T2","T3","T4","T5","T6","T7","T8","T9","T10", "T11","T12","T13","T14","T15","T16","T17","T18","T19","T20", "T21","T22","T23","T24","T25","T26","T27","T28","T29","T30", "T31","T32","T33","T34","T35","T36","T37","T38","T39","T40", "T41","T42","T43","T44","T45","T46","T47","T48","T49","T50" }; } }
正常是无法直接访问该变量的
但是可以使用反射
Program.cs
static void Main(string[] args) { try { Assembly assembly = Assembly.LoadFrom(@"..\..\..\TicketLibrary\bin\Debug\TicketLibrary.dll"); object obj = assembly.CreateInstance("ReflectTest.TicketInfo"); Type type = obj.GetType(); FieldInfo fieldInfo = type.GetField("ticketList", BindingFlags.NonPublic | BindingFlags.Static); object value = fieldInfo.GetValue(null); Console.WriteLine(value.ToString()); Console.WriteLine((value as List<String>).Count); foreach (String a in (value as List<String>)) { Console.Write(a + " "); } Console.WriteLine(); //MethodInfo method = type.GetMethod("GetAge", BindingFlags.NonPublic | BindingFlags.Instance); //var methodValue = method.Invoke(obj, null); //Console.WriteLine(methodValue.ToString()); //object[] customAtt = assembly.GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false); //foreach(var customAttribute in customAtt) //{ // Console.WriteLine(((AssemblyDescriptionAttribute)customAttribute).Description); //} } catch (Exception e) { Console.WriteLine(e.Message); } }
Assembly.LoadFrom 的是上面工程的dll路径
下面注释的两端代码一个是获取私有函数的
一个是获取AssemblyInfo的
相关文章推荐
- C#使用反射访问私有构造函数
- 通过反射访问对象的私有变量和执行私有方法
- .net 反射访问私有变量和私有方法
- 使用C#反射机制访问类的私有成员【转】
- Java反射访问私有变量和私有方法
- 【转】【Java】利用反射技术,实现对类的私有方法、变量访问
- .net 反射访问私有变量和私有方法
- 如何通过反射访问私有变量和私有方法
- Java反射访问私有变量和私有方法相关搜集
- Java通过反射访问私有成员变量和私有方法
- JavaSE第六十四讲:使用反射机制调用对象的私有方法、访问对象的私有成员变量
- 利用反射机制访问父类私有变量和属性
- C#通过反射修改私有变量的值
- java反射访问私有成员变量
- 利用反射直接访问类中的私有变量
- 子类用反射可以访问父类中的私有成员变量及方法
- .net 反射访问私有变量和私有方法
- 使用类的反射机制来访问类的私有成员变量
- C# 利用反射访问修改私有成员
- C# 反射机制(reflection)实现对私有成员的访问