2
Ich versuche, die folgendes zu tun:Unity Registertypen mit Reflection
foreach (var item in Assembly.GetExecutingAssembly()
.GetTypes()
.Where(i => i.GetInterfaces()
.Contains(typeof(ITabItem))))
{
container.RegisterType<ITabItem, item>(nameof(item));
}
Aber ich immer diese Fehlermeldung auf item
im RegisterType
Methode:
Fehler CS0118 'item' ist eine Variable, aber wird wie ein Typ verwendet
Ich weiß, dass ich einen Objekttyp übergeben, aber wie komme ich um diese?
EDIT: dies ist die nicht-dynamische Art und Weise, die funktioniert.
container.RegisterType<ITabItem, AdminViewModel>(nameof(AdminViewModel));
container.RegisterType<ITabItem, OwnerViewModel>(nameof(OwnerViewModel));
Ich glaube, die Frage in der allgemeinen tiefer in Generika und Reflexion geht aber meine Frage befasst sich eine Einheit spezifische Methode und die Antwort für meine Frage spezifisch konnte nicht in dieser Frage gefunden werden. Die Antwort unten tut es dagegen. Ich glaube also nicht, dass meine Frage ein Duplikat ist. Das Markieren dieser Frage als Duplikat könnte dazu führen, dass die Leute von der eigentlichen Antwort wegkommen ... – grmbl
stimme zu. wiedereröffnet. – vcsjones