いてづきブログ

情シスでやってみたことの備忘録

C#のリフレクション

public string reflect (object iObj)
{
Type type = iObj.GetType ();
PropertyInfo
Properties = type.GetProperties ();

List<string> oStr = new List<string> (Properties.Length);

oStr.Add ("Type\t:\t" + type.ToString ());

foreach (PropertyInfo Property in Properties) {
try {

string FieldName = Property.Name;

if (Property.PropertyType.IsArray == false) {


string FieldValue = Property.GetValue (iObj, null).ToString ();

oStr.Add (FieldName + "\t:\t" + FieldValue);
}

else {

oStr.Add (FieldName + "\t:\t" + "IsArray");

}

}
catch (Exception e) {
oStr.Add (Property.Name + "\t:\t" + e.Message);
}

}

return oStr.ToArray ();
}

ちょっと引数の中身見せろやって言われたので手癖でぱぱっと作ってみた。
javaのときはGetFieldでよかったと思ったけど、C#はGetFieldとGetPropertiesとあって、よくわからない。
まぁ、ひとまずこの場の引数の中身だけは抜き出せたのでよし。




リフレクションやるといろいろわかったりしてなんとなくすごいことしてる気分になれるw