Мне нужно создать функцию, которая принимает имена свойств List и 2 T и возвращает список, соответствующий требованиям указанного интерфейса, а также любые другие свойства T.Преобразование неизвестного класса в новый класс с указанным интерфейсом
Например.
interface ITest
{
int ID {get;set};
int ParentID {get;set;};
}
Потребитель имеет любой класс, конвертируемые в этот интерфейс, но с потенциально различными свойствами, чем требуется с помощью интерфейса:
public class ConsumingClass
{
public int ConsumingClassID {get;set;
public int ConsumingClassParentID {get;set;}
public string namex {get;set;}
public string namey {get;set;}
}
Таким образом, потребитель должен получить объект, который отвечает требованиям норм интерфейс, поэтому он хочет вызвать функцию, например:
List<ITest> getnewlist = ConvertList<ConsumingClass>(consuminglist, "ConsumingClassID", "ConsumingClassParentID");
сигнатура метода будет выглядеть следующим образом:
public List<ITest> ConvertList<T>(List<T> ListBeingConverted, string IDAlias, string ParentIDAlias)
{
//code needs to return a list meeting ITest requirements plus any other properties contained in T
}
Редактировать: Я изменил подпись, чтобы более точно отразить то, что я хочу вернуть.
Что вопрос? – MarcinJuraszek
Почему просто не наследовать 'ConsumingClass' от' ITest' ????? – Tony
1. ITest или Список >? 2. Нужны имена строк? Да: потребуется отражение: Нет: могут использоваться делегаты или LINQ/Lambdas. –
firda