我需要编写简单的应用程序来获取类名(假设该类出现在应用程序 AppDomain 中)并打印到控制台
all the public properties
values of each properties
all the method in the class
我需要编写简单的应用程序来获取类名(假设该类出现在应用程序 AppDomain 中)并打印到控制台
all the public properties
values of each properties
all the method in the class
var p = GetProperties(obj);
var m = GetMethods(obj);
-
public Dictionary<string,object> GetProperties<T>(T obj)
{
return typeof(T).GetProperties().ToDictionary(p=>p.Name,p=>p.GetValue(obj,null));
}
public MethodInfo[] GetMethods<T>(T obj)
{
return typeof(T).GetMethods(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
}
您可以使用通过调用方法获得GetValue
的PropertyInfo
对象的方法来获取它GetProperties
foreach(PropertyInfo pi in myObj.GetType().GetProperties())
{
var value = pi.GetValue(myObj , null);
}
PropertyInfo
对象包含许多方法,可以检索您想要的有关名称等属性的信息,它是只读的..etc
这是代码。. .
void Main()
{
Yanshoff y = new Yanshoff();
y.MyValue = "this is my value!";
y.GetType().GetProperties().ToList().ForEach(prop=>
{
var val = prop.GetValue(y, null);
System.Console.WriteLine("{0} : {1}", prop.Name, val);
});
y.GetType().GetMethods().ToList().ForEach(meth=>
{
System.Console.WriteLine(meth.Name);
});
}
// Define other methods and classes here
public class Yanshoff
{
public string MyValue {get; set;}
public void MyMethod()
{
System.Console.WriteLine("I'm a Method!");
}
}