Можно ли возвращать объект типаC# возвращенная общий тип без параметра типа во время выполнения
IModel<T>
, не зная тип параметра?
объекты хранятся в словаре, с типом в качестве ключа и объектом с IModel
(базовый интерфейс до IModel<T>
), реализованный в качестве значения. Интерфейс IModel<T>
наследуется от IModel
, но для выполнения полного действия мне нужен объект IModel<T>
. T
должен иметь интерфейс IFactoryItem
.
но первый код:
public IModel<T> GetModel<T>() where T : IFactoryItem
{
Type tmpType = typeof(T);
if (!_allModelsByType.ContainsKey(tmpType))
return null;
return (IModel<T>)_allModelsByType[tmpType];
}
я подумал о решении, как
общественного IModel GetModel (тип Т) и обертку, чтобы бросить его на правильный тип.
Я надеюсь, что я не совсем ошибаюсь. это мой первый вопрос.
Ваш метод выглядит прекрасно, предполагая, что значения в словаре выстраиваются в линию с ключ типа. В чем проблема? –