0
У меня есть Repository класс:Необходимость метода параметризованного типа для реализации репозитория
public class Repository<T> where T : IMappable
{
public virtual List<IMappable> Get()
{
return new DataProvider().Get(/* somehow use T's Map() method */);
}
}
internal class DataProvider
{
public delegate IMappable Mapper(Object dataSource);
public List<IMappable> Get(Mapper mapper)
{
List<IMappable> mappables = new List<IMappable>();
//Paraphrasing
foreach(var ds in dataSource)
{
mappables.Add(mapper(ds));
}
return mappables;
}
}
public interface IMappable
{
IMappable Map(Object dataSource);
}
Когда я делаю Repository<TypeThatImplementsIMappable>
я хочу передать его использовать метод Map родового типа. Я не могу использовать отражение или код DOM по соображениям производительности (я думаю, это отсечка для производительности, которую нам разрешено иметь). Как это может быть сделано?
Спасибо, забыл совсем о том, что ограничение :) – jokulmorder