Hat jemand versucht, ihre Drittanbieter-Instanzen mit Struktur Map zu verwalten?Integration von Third-Party-Bibliothek-Instanzen mit Struktur Karte
Für die längste Zeit, meine Herangehensweise an die Verwaltung von Third-Party-Bibliothek war es, einen Wrapper um die Bibliothek API zu schreiben.
Ich stehe vor einem Dilemma, wie man den Vorteil der Abhängigkeitsinjektion von Strukturkarten nutzen kann, während ich meine Wrapper weiterhin um Bibliotheken von Drittanbietern bewahre.
Zum Beispiel, wenn ich eine LibraryClass habe und ich meine Klasse WrapperClass. Mein Wrapper-Konstruktor sieht wie folgt aus.
class WrapperClass : IWrapperClass{
var instance;
public WrapperClass(){
instance = new LibrayClass();
}
}
Das Problem dabei ist, dass überall dort, wo ich in meinem Code verwende, kann ich dieses Objekt nicht verspotten, weil Strukturkarte Zugang zum LibraryClass Typ, um WrapperClass zu laden haben muss.
Was machen Menschen dafür? Sollte ich einfach den LibraryClass-Typ der Struktur-Map aussetzen und hoffe, dass dieser dann durch die Struktur Map geladen wird?
Will nicht Struktur map beschweren, dass der AmazonS3 ist nicht in der Struktur Karte Objekt Fabrik registriert? – Erion
Sie haben je nach Bedarf einige Optionen. 1. Registrieren Sie AmazonS3 in Strukturmap 2. Richten Sie IFileStorage als() ein. Verwenden Sie () .ctor () .Is (new AmazonS3) 3. Nur neu Amazon3 im Konstruktor und entfernen Sie es aus der Parameterliste Für Nummer 2, kann ich mich nicht erinnern, ob das ein Singleton für den Konstruktor oder nicht tut, etwas zu prüfen, wenn Sie die Route gehen –
ok das ist, was ich gefragt habe, so dass Sie den Third-Party-Bibliothekstyp offen legen die Strukturkarte. – Erion