Nuovo .NET4.5 API ha la seguente logica in IntrospectionExtensions classePerché System.Reflection.IntrospectionExtensions.GetTypeInfo ha un codice irraggiungibile?
public static TypeInfo GetTypeInfo(this Type type)
{
if (type == (Type) null)
throw new ArgumentNullException("type");
IReflectableType reflectableType = (IReflectableType) type;
if (reflectableType == null)
return (TypeInfo) null; // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< HERE!
else
return reflectableType.GetTypeInfo();
}
Perché questo metodo ha codice irraggiungibile? È un bug o è fatto intenzionalmente?
È questo l'uscita di alcuni decompilatore? Forse il codice sorgente originale era 'IReflectableType reflectableType = type come IReflectableType;' e il decompilatore ha sbagliato. – dtb
IL DASM mostra (IL_0015: castclass System.Reflection.IReflectableType) non (isinst), quindi esiste un cast rigoroso. –