Ich habe gerade fast alle Klassen in meiner Services Schicht umgestaltet, um von einer ServiceBase
zu erben, um Doppelungen beim Initialisieren des Datenzugriffs und andere mit fast allen Diensten identische Aspekte zu vermeiden, aber ich wurde in meinen Spuren angehalten, als ich meine erreichte RoleService
, da es von RoleProvider
erben muss, damit ich es als offiziellen Anbieter meiner Website konfigurieren kann.
Jetzt ist es ein bisschen spät in der Nacht, und das Koffein ist in Form, aber ich frage mich, ob es eine Möglichkeit gibt, ein dynamisches Objekt anstelle eines abgeleiteten Objekts zu verwenden und alle Mitglieder des Basisobjekts hinzuzufügen das abgeleitete Objekt zur Laufzeit anstelle der Kompilierzeit.
Ist das auch nur entfernt möglich?
Nein, DynamicObject
lässt nicht zu, dass Sie von zwei konkreten Klassen ableiten, was die Mehrfachvererbung ist und welche von C # nicht unterstützt wird. Das Problem, dem Sie gegenüberstehen, ist entweder gleich, dynamisch oder statisch. Wenn Sie Base1
und Base2
haben, die nichts miteinander zu tun haben, dann kann, sobald Sie Derived
von Base1
ableiten, das Derived is Base2
niemals wahr sein. Stattdessen können Sie sich für Derived is IBase2
entscheiden.
Ich empfehle, dass Sie Folgendes verwenden:
zusammen mit mehreren Schnittstellen oder einer konkreten Ableitung und einer Schnittstelle. Um mehrere Vererbungen zu simulieren, müssen Sie:
Dies begrenzt die Menge an Code in Ihrer implementierenden Klasse auf nur einen Weiterleitungsaufruf pro Schnittstellenmethode oder -eigenschaft.
Weiß nicht, ob Sie wirklich die Probleme auf Klassenebene lösen müssen, aber hier sind einige Ressourcen, die hilfreich sein können, um Ihren Rollenanbieter als WCF-Dienst einzurichten:
Ссылка (was für ein Link!)
bearbeiten ---- Auch wurde es in diesem Post hier erwähnt: Kann ich einen benutzerdefinierten Rollenanbieter über einen WCF-Dienst erstellen?