У меня есть некоторые объекты, такие как пользователь, адрес и т. Д., И я преобразую их в бизнес-объекты с помощью методов расширения:
public static UserModel ToPresentationForm(this User pUser)
{
return new UserModel
{
...
map data
...
};
}
Также мне нужно конвертировать строго типизированные коллекции, и обычно у меня есть следующий код:
public static List<UserModel> ToPresentationForm(this List<User> pUserColl)
{
return pUserColl.Select(x => x.ToPresentationForm()).ToList();
}
Я думал, что если я добавлю какой-нибудь интерфейс, например IPresentationForms, и смогу использовать его, чтобы написать метод, подобный
public static List<T> ToPresentationForm(this List<IPresentationForms> pTemplate)
{
return pUserColl.Select(x => x.ToPresentationForm()).ToList();
}
Не уверен, как предоставить параметр для типа метода, чтобы сделать его универсальным. Итак, вопрос в том, как это сделать.
P.S. Я использую C # 4.0