Я запутался с этим.Но вот что я пытаюсь сделать.Вот структура класса:
public class Order
{
public Int32 orderID { get; set; }
public Int32 CustomerID { get; set; }
public Int32 ProductID { get; set; }
public string OrderName { get; set; }
public Product ProductDetails { get; set; }
public Customer CustomerDetails { get; set; }
}
public class Product
{
public Int32 ProductID { get; set; }
public string Name { get; set; }
}
public class Customer
{
public Int32 CustomerID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
}
Я строю универсальный метод, который принимает содержимое XML, создает и загружает экземпляр объекта переданного типа.Я получил продукт и клиент работает.Но когда дело доходит до заказов, это запутывает.
public static T LoadObject<T>(string Contents) where T : new()
{
T obj = new T();
foreach (PropertyInfo property in typeof (T).GetProperties())
{
if (property.PropertyType.IsValueType || property.PropertyType.IsPrimitive)
{
object propValue = Convert.ChangeType(GetValue(property.PropertyType, Contents),
property.PropertyType);
property.SetValue(obj, propValue, null);
}
else
{
//Type typeArgument = property.PropertyType;
//Type genericClass = t
//object propValue = LoadObject<> (dr);
//property.SetValue(obj, propValue, null);
}
}
return obj;
}
Как я могу назвать это рекурсивно, чтобы Заказ загружал клиента и продукт?