ich bin mir zwar nicht sicher ob dir das was bringt, aber bitteschön.
Damit lese ich testweise die Properties aus.
Ist der Code in einem fremden Assembly, werden bei einer vererbten Klasse nicht die Eigenschaften des Objektes ausgelesen, von welchem es geerbt hat.
Ist der Code in einem Assembly, welches eine Referenz hat auf die Assembly in welchem die Klasse steht, werden auch die Eigenschaften des Basisobjektes ausgelesen.
private static void iterateForeignObj(object Fremdobj, ArrayList arr)
{
Type t = Fremdobj.GetType().BaseType;
PropertyInfo[] pis = Fremdobj.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
foreach (PropertyInfo p in pis)
{
if ((p.PropertyType.IsInterface || p.PropertyType.IsClass)
&& !p.PropertyType.Equals(typeof(string)))
{
try
{
object o = p.GetValue(Fremdobj, null);
if (o != null)
{
arr.Add(o);
iterateForeignObj(o, arr);
}
}
catch (Exception)
{
}
}
}
}