Как вы получаете имя универсального класса, используя отражение? - PullRequest
2 голосов
/ 18 ноября 2009

Как вы получаете имя универсального класса, используя отражение

например

public class SomeGenericClass<T>
{
}

SomeGenericClass<int> test = new SomeGenericClass<int>();

test.GetType().Name возвращает "SomeGenericClass'1"

Как мне заставить его возвращать SomeGenericClass без '1?

Ответы [ 3 ]

4 голосов
/ 18 ноября 2009

'1 является частью имени, потому что, например, List<T> и List (если я создал такой класс) - это разные классы.

'1 означает, что он имеет один параметр типа. Если вы хотите узнать тип этого параметра, используйте test.GetType (). GetGenericArguments () [0];

1 голос
/ 18 ноября 2009
enum.GetName(test.GetType(), test).ToString()
0 голосов
/ 18 ноября 2009

Как насчет следующего?

test.GetType().Name.Split('\'')[0]

Работает и с неуниверсальными классами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...