Как видно из заголовка, мне нужно преобразовать этот объект:
object obj = new{
Id = 1,
Name = "Patrick"
};
В конкретный экземпляр класса.
Чтобы быть более понятным, вот пример для вас, ребята:
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Scholar
{
public int UniqueId { get; set; }
public string FullName { get; set; }
}
У меня есть два класса Ученик и Ученый .Я не могу найти способ правильно написать алгоритм преобразования в конкретный тип.
На мой взгляд, псевдокод должен выглядеть следующим образом:
if (obj.CanBeConverted<Student>()) {
//should return this if statement
obj = ConvertToType<Student>(o);
// after this method obj type should change to Student
} else if (obj.CanBeConverted<Scholar>()) {
//at current example wont reach this place
obj = ConvertToType<Scholar>(o);
// after this method obj type should change to Scholar
}
Можно ли это каким-то образом программировать?
Я просмотрел сеть и нашел этот пример: https://stackoverflow.com/a/17322347/8607147
Однако это решение всегда пытается преобразовать / десериализовать объект или динамический тип в конкретный объект.