我发布了一个关于使用消息与故障异常在服务之间传达业务规则的问题。
我的印象是通过网络抛出这个异常会带来开销,但考虑到它只是一个被序列化和反序列化的消息,它们实际上是相同的。
但这让我开始考虑抛出一般的异常或更具体地抛出 FaultExceptions。
现在在我的服务范围内,如果我使用
throw new FaultException
传达一个简单的业务规则,例如“您的帐户尚未激活”,现在这会带来什么开销?它与在 .NET 中引发常规异常的开销相同吗?或者 WCF 服务是否使用故障契约更有效地处理这些问题。
所以在我的用户示例中,这是编写我的服务方法的最佳/首选方式
选项一
public void AuthenticateUser()
{
throw new FaultException("Your account has not been activated");
}
选项 b
public AutheticateDto AutheticateUser()
{
return new AutheticateDto() {
Success = false,
Message = "Your account has not been activated"};
}