Wie teste ich eine Klasse, die von einer Webdienstreferenz generierte Proxy-Clients verwendet?
Ich möchte den Client spiegeln, aber die generierte Client-Schnittstelle enthält nicht die Close-Methode, die erforderlich ist, um den Proxy ordnungsgemäß zu beenden. Wenn ich nicht die Schnittstelle, sondern einen konkreten Verweis verwende, erhalte ich Zugriff auf die Close-Methode, verliere aber die Möglichkeit, den Proxy nachzubilden.
Ich versuche gerade, eine ähnliche Klasse zu testen:
public class ServiceAdapter : IServiceAdapter, IDisposable
{
// ILoggingServiceClient is generated via a Web Service reference
private readonly ILoggingServiceClient _loggingServiceClient;
public ServiceAdapter() : this(new LoggingServiceClient()) {}
internal ServiceAdapter(ILoggingServiceClient loggingServiceClient)
{
_loggingServiceClient = loggingServiceClient;
}
public void LogSomething(string msg)
{
_loggingServiceClient.LogSomething(msg);
}
public void Dispose()
{
// this doesn't compile, because ILoggingServiceClient doesn't contain Close(),
// yet Close is required to properly terminate the WCF client
_loggingServiceClient.Close();
}
}