Ich habe mir eine Zeitlang die Haare ausgezogen, im Wesentlichen versuche ich eine generische Repository-Factory zu implementieren, die wie folgt aufgerufen wird:
%Vor%Die Repository-Factory sieht folgendermaßen aus:
%Vor%Wenn ich versuche, die GetRespository-Funktion aufzurufen, schlägt die folgende Zeile fehl
%Vor%Der Fehler, den ich bekomme, ist:
ArgumentException - GenericArguments [0], 'Framework.Repositories.IRepository'1 [Apps.Documents.Entities.PerpetualDocument]', 'Framework.Repositories.DocumentLibraryRepository'1 [T]' verstößt gegen die Einschränkung des Typs 'T' .
Irgendwelche Ideen, was hier falsch läuft?
BEARBEITEN:
Die Implementierung des Repository ist wie folgt:
%Vor%Und das IRepository sieht so aus:
%Vor% Ihr Code versucht, eine Instanz von DocumentLibraryRepository<IRepository<Document>>
anstelle von DocumentLibraryRepository<Document>
zu erstellen.
Sie möchten stattdessen diesen Code verwenden:
%Vor%Vielleicht kann meine Antwort jemandem helfen, der denselben Fehler hat. Mein Szenario ist:
%Vor%Also zur Laufzeit wenn Run () -Methode geladen ist (nicht ausgeführt) bekomme ich eine Ausnahme: GenericArguments [0] .... System.EventHandler'1 [TEventArgs] 'verletzt die Einschränkung des Typparameters' TEventArgs '.. bei der Methode Run ().
Ich weiß nicht, ob es ein .NET-Fehler ist, aber in meinem Fall habe ich dieses Problem gelöst, indem ich den Typ der TypedEvent-Eigenschaft in der Klasse A von typisiert EventHandler<B>
in EventHandler änderte.
Mein Szenario wird:
Ich hoffe, dass das jemandem helfen kann.
Tags und Links .net c# reflection generics factory-pattern