sto testando oggetto come questo:È possibile vedere se un oggetto eredita IDictionary senza parametri di tipo generico?
if (item is IDictionary<object, object>)
Ma che non hanno tutte le altre combinazioni di tipi <sting, object>, <int, string>
ecc ...
Voglio solo sapere se ha implementato l'interfaccia a prescindere di che tipi generici sta usando.
Ho trovato un esempio che ha detto che era possibile fare qualcosa di simile:
dictionary.GetType().GetInterfaces().Any(x => x.GetGenericTypeDefinition == typeof(IDictionary<>));
Ma devo ancora specificare il tipo di firma o non è valido.
E 'possibile fare una dichiarazione che controlli l'interfaccia senza dover specificare il tipo?
A seconda di cosa i vostri bisogni finali sono, se si sta cercando di scoprire se si dispone di un dizionario e non specificamente IDictionary , si potrebbe essere in grado di verificare la presenza di IDictionary non generico, invece, che Dizionario implementa anche. Tuttavia, questa soluzione dipenderà dal tuo caso d'uso. –