Как преобразовать в общий - PullRequest
0 голосов
/ 05 августа 2020

У меня есть аргумент типа generi c, как показано ниже:

var genericTypeArgument = property.PropertyType.GenericTypeArguments.First();

Но когда я передам аргумент типу generi c, компилятор не принимает:

var propertyValue = (FooGenericType<genericTypeArgument - ERROR!!!>)property.GetValue(type);

Как мне это сделать?

1 Ответ

0 голосов
/ 05 августа 2020

genericTypeArgument имеет тип Type, который является динамическим c описанием типа stati c. Однако для дженериков требуется тип stati c. То есть компилятор не знает, что это за тип, пока вы его не выполните, но он должен делать это так, как вы хотите.

Вместо этого вам нужно получить отраженную информацию (пример : MethodInfo ), установите его общие c типы ( для метода это ), а затем вызовите, получите, установите его. ( метод, снова ).

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