У меня есть эта обобщенная функция:Преобразовать TypeOf (Т) Т
public List<T> GetList<T>() {
var businesType = typeof(T);
var databaseType = AutoMapperConfiguration.TypeMapping[businesType];
var databaseEntityList = DataModelAccess.GetEntityList(databaseType);
var businessEntityList = Mapper.Map(databaseEntityList, databaseEntityList.GetType(), typeof(List<T>));
return (List<T>)businessEntityList;
}
Но то, что я хочу, вместо того, чтобы позвонить DataModelAccess так:
DataModelAccess.GetEntityList(databaseType);
должен отправить databaseType в качестве родового типа, как то:
DataModelAccess.GetEntityList<DatabaseType>();
, чтобы иметь возвращение этого метода как List<T>
.
Спасибо! P.S. Определение DataModelAccess.GetEntityList (databaseType) является:
public static List<object> GetEntityList(Type databaseType)
{
//get data from database
//retunt it as List<object> <= and I dont like that
}
Пожалуйста, показать нам код/определение 'DataModelAccess.GetEntityList()' –
Зачем вам это нужно? Просто не нравится подпись с типом в качестве параметра? Это не одна линия для достижения цели и, возможно, не стоит ничего стоит – sll
Я хочу это, чтобы быть легко используемым другими программистами (это будет библиотека). Спасибо! –