実行時にオブジェクトを動的に変換するタイプ
2362 ワード
動的に実行するときに、オブジェクトのタイプを変換する必要がある場合があります.ここでは、この作業を完了するために小さなコードを提供します.
public class DynamicCastType
{
static MethodInfo castMethod;
public static object Cast(object obj, Type targetType)
{
if (castMethod == null)
{
castMethod = typeof(DynamicCastType).GetMethod("CastIt", BindingFlags.NonPublic | BindingFlags.Static);
}
return castMethod.MakeGenericMethod(targetType).Invoke(null, new object[] { obj });
}
static T CastIt<T>(object obj)
{
try
{
return (T)obj;
}
catch
{
return default(T);
}
}
}
:http://social.msdn.microsoft.com/forums/en-US/csharplanguage/thread/fe14d396-bc35-4f98-851d-ce3c8663cd79