Под управлением .NET 2.0 у меня есть универсальный метод со следующей подписью:
static listType FillCollection<listType, objType>(IDataReader dr) where listType : ICollection<objType>, new()
это цель - перевести источник данных в коллекцию объектов по моему выбору. Моя проблема, которая не совсем проблема, состоит в том, что, когда я звоню, звонок заканчивается примерно так:
List<MyObject> data = FillCollection<List<MyObject>, MyObject>(dr);
Мне любопытно, есть ли способ избавиться от необходимости указывать MyObject дважды в вызове. В идеале я бы мог указать его только один раз вместе с типом коллекции и поддерживать строгий типизированный характер метода. Добавление другого метода-обертки для абстракции сортировки типа ICollection делает свое дело:
List<MyObject> data = FillList<MyObject>(dr);
static List<objType> FillList<objType>(dr)
{
return FillCollection<List<objType>, objType>(dr);
}
Но я бы предпочел не иметь метода-обертки для каждой коллекции, которую я хочу использовать.
Может быть, у меня нет выбора в этом вопросе, но если это так, мне это не понравится! ;)
Спасибо!