public class User
{
private string _username;
private string _password;
private Employee _employee;
//set get
}
public class Employee
{
private int _id;
private string _firstname;
private string _lastname;
//set get
}
проблема в том, что когда я использую отражение для итерации класса User, я не могу определить класс Employee. мой код такой
public string Compare<T>(T newVal, T oldVal)
{
StringBuilder retVal = new StringBuilder();
Type objectsType = typeof(T);
foreach (PropertyInfo propertyInfo in objectsType.GetProperties(
BindingFlags.GetProperty | BindingFlags.Public | BindingFlags.Instance))
{
//if (?) --> how to identify the propertyInfo here as class so that i can iterate using recursive
//{
// Compare(propertyInfo.GetValue(oldVal, null), propertyInfo.GetValue(newVal, null));
//}
if (propertyInfo.CanRead)
{
object newValue = propertyInfo.GetValue(newVal, null);
object oldValue = propertyInfo.GetValue(oldVal, null);
if (propertyInfo.PropertyType.Namespace.StartsWith("System") && !propertyInfo.PropertyType.IsGenericType)
{
if (!Object.Equals(newValue, oldValue))
{
retVal.Append(propertyInfo.Name + " = " + newValue.ToString() + ";");
}
}
}
}
return retVal.ToString();
}
пожалуйста, помогите,
спасибо
С уважением,
Willy