Активатор отражения C # создает экземпляр, используя универсальный параметр - PullRequest
2 голосов
/ 10 февраля 2012

Допустим, у меня есть следующее определение класса:

List<SomeClass>...
public class SomeClass
{
   int Id {get; set;}
}

и в другом месте моего проекта я получаю этот тип List, я хочу каким-то образом его разложить, что означает создание экземпляра универсального переданного параметра в этом случае (SomeClass)

 public T Decompose (object toDecompose)
{
   if (toDecompose.GetType().IsGenericType())
   {
     Types[] genericParams= toDecompose.GetType().GetGenericParameters();
      something similar to ...return Activator.CreateInstance<genericParams[0]>; -- which does not compile
   }
}

поэтому возвращаемый объект должен быть экземпляром SomeClass ..

1 Ответ

3 голосов
/ 10 февраля 2012
  Activator.CreateInstance(genericParams[0]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...