我不熟悉网络服务。我使用网络服务创建了一个电子邮件服务。
我的问题是:
如何使用MsgBox“已发送”和“已发送失败”进行电子邮件发送?
答案 0 :(得分:5)
您需要创建自定义响应类型并从服务中返回。客户端(调用该服务)应阅读响应并负责弹出一个消息框,说明服务调用是否成功。
这是类型的样子:
[DataContract]
public class SendMessageResponse
{
[DataMember]
public bool Successful { get; set; }
[DataMember]
public List<string> Messages { get; set; }
public SendMessageResponse()
{
this.Successful = true;
this.Messages = new List<string>();
}
public void ProcessException( Exception ex )
{
this.Messages.Add( ex.Message );
this.Successful = false;
}
}
以下是服务代码的样子:
[WebMethod]
public SendMessageResponse SendMessage(...)
{
var response = new SendMessageResponse();
try
{
// Do your send message stuff here...
response.Successful = true; // or whatever you want to say
}
catch( Exception ex )
{
response.ProcessException( ex );
}
return response;
}
这样,您的服务永远不会对通道进行故障,并且始终会返回您的响应对象(即使在例外的情况下也是如此)。然后,您可以使用响应对象向客户端传达服务呼叫的状态。
以下是客户端的外观:
public void SendMessage( MessageServiceClient proxy, string mail, string authstr )
{
MessageServiceClient.SendMessageResponse response = proxy.SendMessage( mail, authstr );
if( response.Successful )
{
MessageBox.Show( "Message Sent" );
}
else
{
MessageBox.Show( "Message Failed to Send: " + response.Messages.FirstOrDefault() );
}
}
客户端代码是一个粗略的例子,但它应该让你知道我在说什么。
答案 1 :(得分:1)
尝试添加
返回“已发送”
代码..
答案 2 :(得分:0)
Web服务位于Web服务器而非客户端,通过Visual Studio,您可以添加Web服务的Web引用,这将创建一个代理类,从您的网站调用Web服务,具体取决于您的响应来自该网站可能是一个布尔值,然后您可以告诉客户端添加一个消息框。
干杯