我有一个自动生成的 SOAP 客户端。它是由 Visual Studio 向导生成的(添加连接的服务 -> Microsoft WCF Web 服务参考提供程序)。我想模拟该客户端,因此当调用方法时,将以 SOAP 响应的格式返回预定义的结果。不幸的是,我无法让它工作 - 我的结果要么为空(而不是在 .Returns 中定义),要么得到异常。
我正在尝试在我的设计中应用干净的架构。因此,这个 SOAP 客户端进入了我的基础设施层,我在其中为其创建了一个存储库。该存储库创建 DTO,因此可以将它们分派到我的持久性中。存储库通过依赖项注入接收 SOAP 客户端。我还想对存储库进行测试,只是为了验证 DTO 生成是否正确。因此,我想模拟这个 SOAP 服务,这样我就可以将其提供给存储库并测试返回的 DTO。
自动生成的界面:
public interface ApplicationSoap
{
[System.ServiceModel.OperationContractAttribute(Action = "http://Application/GetAppVersion", ReplyAction = "*")]
Task<ExtApp.GetAppVersionResponse> GetAppVersionAsync(ExtApp.GetAppVersionRequest request);
}
和自动生成的客户端类:
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.Tools.ServiceModel.Svcutil", "2.0.1-preview-30514-0828")]
public partial class ApplicationSoapClient : System.ServiceModel.ClientBase<ExtApp.ApplicationSoap>, ExtApp.ApplicationSoap
{
static partial void ConfigureEndpoint(System.ServiceModel.Description.ServiceEndpoint serviceEndpoint, System.ServiceModel.Description.ClientCredentials clientCredentials);
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
System.Threading.Tasks.Task<ExtApp.GetAppVersionResponse> ExtApp.ApplicationSoap.GetAppVersionAsync(ExtApp.GetAppVersionRequest request)
{
return base.Channel.GetAppVersionAsync(request);
}
public System.Threading.Tasks.Task<ExtApp.GetAppVersionResponse> GetAppVersionAsync(int appVer)
{
ExtApp.GetAppVersionRequest inValue = new ExtApp.GetAppVersionRequest();
inValue.Body = new ExtApp.GetAppVersionRequestBody();
inValue.Body.appVer = appVer;
return ((ExtApp.ApplicationSoap)(this)).GetAppVersionAsync(inValue);
}
}
它运行,但调用的结果是null。我期望返回一个具有非空Body属性且内部有数组的对象。我正在寻求如何使这件事发挥作用的建议。
哔哔one
相关分类