Muszę znaleźć, jeśli typ jest określony rodzaj ogólny.Sprawdź, czy dwa typy ogólne są równe
class MyType<T> {}
var instance = new MyType<int>();
var type = instance.GetType();
Ta kontrola nie działa, ale to jest to, co chcę sprawdzić. Jeśli typ jest tego rodzaju, niezależnie od tego, jaki jest T
.
type == typeof(MyType<>)
To działa, ale jest brudne. Może to być również błędne, ponieważ nie jest to FullName
.
type.Name == typeof(MyType<>).Name
Zakładam, że istnieje sposób, aby to zrobić, ale nie znalazłem. Używanie IsAssignableFrom
nie będzie działać, ponieważ muszę wiedzieć, czy bieżący typ, a nie jeden z jego rodziców, są równe.