ghi*_*hie 4 .net c# web-services
我不熟悉Web服务.我使用Web服务创建了一个电子邮件服务.
我的问题是:
如何使用MsgBox"已发送"和"已发送失败"进行电子邮件发送?
您需要创建自定义响应类型并从服务中返回该类型.客户端(调用该服务)应该读取响应并负责弹出一个消息框,说明服务调用是否成功.
这是类型的样子:
[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;
}
}
Run Code Online (Sandbox Code Playgroud)
以下是服务代码的外观:
[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;
}
Run Code Online (Sandbox Code Playgroud)
这样,您的服务永远不会使通道出错并始终返回您的响应对象(即使在异常的情况下).然后,您可以使用响应对象与客户端通信您的服务调用状态.
以下是客户端的外观:
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() );
}
}
Run Code Online (Sandbox Code Playgroud)
客户端代码是一个粗略的例子,但它应该让你知道我在说什么.