Ich versuche, Dependency-Injektion in der gesamten App-Ebene zu tun und bin in ein Szenario laufen, die andere sicher gesehen haben. Es gibt einige Webdienste von Drittanbietern, die wir nutzen, und die Clients wurden automatisch mit einer Basisklasse generiert. Die Clients haben keine Schnittstelle und die Datentypen befinden sich in derselben Datei/demselben Projekt.DI mit automatisch generierten Web-Service-Clients
Das offensichtliche Problem ist, wenn ich Unit-Tests machen will, muss ich den Dienst verspotten. Ich muss eine Schnittstelle extrahieren und die Datentypen in ein "Vertrags" -Projekt verschieben, das für echte/falsche Clients verfügbar ist. Wenn der Client das nächste Mal automatisch generiert wird, muss diese Arbeit jedoch erneut ausgeführt werden. Das Erstellen eines Proxys zur Laufzeit würde nicht viel helfen, denn dann müssten wir die Schnittstellen und Datentypen manuell aus der WSDL erstellen. Gibt es einen besseren Weg, damit umzugehen?
Würden Shims via Microsoft Fakes für Sie in diesem Szenario von Nutzen sein? http://msdn.microsoft.com/en-us/library/hh549175.aspx –
@ BrendanGreen - +1 für etwas Neues, das ich heute gelernt habe. Dies könnte wahrscheinlich funktionieren, aber da ich die Kontrolle über den Client-Code habe, möchte ich diese Route möglichst vermeiden. Definitiv ein gutes Werkzeug für die Zukunft. –