Ich habe ein Array von PropertyInfo, das die Eigenschaften in einer Klasse darstellt. Einige dieser Eigenschaften sind vom Typ ICollection<T>
, aber T variiert über die Eigenschaften - ich habe einige ICollection<string>
, einige ICollection<int>
, etc.
Ich kann leicht erkennen, welche der Eigenschaften vom Typ ICollection<>
sind, indem ich die GetGenericTypeDefinition () -Methode für den Typ verwende, aber ich finde es unmöglich, den Typ von T zu erhalten - das int oder die Zeichenfolge in meinem obigen Beispiel / p>
Gibt es eine Möglichkeit, dies zu tun?
%Vor% Wenn Sie wissen, dass es ICollection<X>
ist, aber nicht X, dann ist das ziemlich einfach mit GetGenericArguments
:
Es wird schwieriger, wenn der Typ ein Typ ist, der implementiert ICollection<T>
, aber möglicherweise selbst generisch ist. Es klingt, als ob du in einer besseren Position bist:)
Ich glaube, das ist es wonach Sie suchen:
%Vor%Dadurch erhalten Sie den T-Teil einer generischen Liste & lt; T & gt; zum Beispiel.