public static Type[] GetTypesEx(this Assembly assembly)
{
Argument.IsNotNull("assembly", assembly);
Type[] results = null;
#if NETFX_CORE || WP80 || PCL
results = (from type in assembly.DefinedTypes
select type.AsType()).ToArray();
#else
results = assembly.GetTypes();
#endif
return results;
}