我有一个理论问题。我有一个 WCF Web 服务,需要与 .NET 客户端和 iPhone 应用程序通信。
在服务中我有很多方法,例如:
User Login(string email,string password); etc..
如果成功,我希望服务将用户返回给我。否则,我希望服务向我抛出自定义异常,例如 EmailNotFoundException
或 PasswordNotCorrectException
。
我被告知这不是最好的方法,特别是因为 iPhone 客户端将使用此服务。
我应该更改所有方法以返回一些包含 Object
和错误字符串/异常对象的 WrapperEntity
吗?
这对我来说很重要,因为有时我需要知道操作失败的原因。如果 Login
返回 null 我会知道操作失败,但我不知道为什么。
最佳答案
您不应在 WCF 服务中使用异常来定期与服务使用者进行通信。相反,请考虑创建一个响应对象,其中包含您需要了解的有关该操作的所有信息。
类似于:
public class LoginResponse
{
public User User { get; set; }
public string Message { get; set; }
public bool IsSuccessful
{
get { return User != null; }
}
}
然后您的登录操作将类似于:
LoginResponse Login(string email, string password)
{ ... }
这样,如果操作失败,您可以在响应中添加一条消息来解释原因。
关于c# - WCF和错误处理,最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8491044/