public static bool IsCloneableType(this Type type, out bool isValueType) { isValueType = false; if(type.IsValueType) { isValueType = true; return true; } return typeof(ICloneable).IsAssignableFrom(type); } #endif