generische Typprüfung und dynamischer generischer Methodenaufruf

10/08/2009 - 13:00 von Markus Springweiler | Report spam
Hallo,

public void Tuwas<T>(IEnumerable<T> source)
{
// T und source auf Erfüllung der Vorgaben von Tuwas2 prüfen, und bei Erfolg Tuwas2 aufrufen
}

private void Tuwas2<T>(EntityCollection<T> source)
where T: class, IEntityWithRelationships
{
}

Wie stell ich das an?

/\/\arkus.
 

Lesen sie die antworten

#1 Markus Springweiler
10/08/2009 - 13:42 | Warnen spam
Update,

ist an folgender Lösung etwas auszusetzen, oder geht das eleganter?

public void Tuwas<T>(IEnumerable<T> source)
{
// T und source auf Erfüllung der Vorgaben von Tuwas2 prüfen, und bei Erfolg Tuwas2 aufrufen


var m = MethodBase.GetCurrentMethod().DeclaringType.GetMethod("Tuwas2", BindingFlags.NonPublic | BindingFlags.Instance);
var tt = typeof(T);
var st = source.GetType();
if (typeof(IEntityWithRelationships).IsAssignableFrom(tt) && st.IsGenericType && st.GetGenericTypeDefinition() == typeof(EntityCollection<>))
m.MakeGenericMethod(tt).Invoke(this, new object[] {source});
}



/\/\arkus.

Ähnliche fragen