クラス名を取得する単純なアプリケーションを作成し (クラスがアプリケーション 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);
}
ここにコードがあります。. .
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!");
}
}
メソッドを呼び出して取得したオブジェクトGetValue
のメソッドを使用して取得できますPropertyInfo
GetProperties
foreach(PropertyInfo pi in myObj.GetType().GetProperties())
{
var value = pi.GetValue(myObj , null);
}
PropertyInfo
オブジェクトには、名前のようなパーパーティについて必要な情報を取得する多くのメソッドが含まれています。それは読み取り専用ですか..など