Я опубликовал вопрос об использовании сообщений и исключений ошибок для обмена бизнес-правилами между службами.
У меня сложилось впечатление, что он несет накладные расходы, чтобы выбросить это исключение по проводам, но, учитывая, что это всего лишь сообщения, которые сериализуются и десериализуются, они фактически были одним и тем же.
Но это заставило меня задуматься о генерации исключений вообще или, более конкретно, об исключениях FaultExceptions.
Теперь в моем сервисе, если я использую
throw new FaultException
для передачи простого бизнес-правила, такого как «Ваша учетная запись не была активирована»,
Какие накладные расходы это сейчас несет?
Это такие же накладные расходы, как и обычные исключения в .NET? или служба WCF обрабатывает их более эффективно с использованием Fault Contracts.
Итак, в моем примере пользователя, который является оптимальным / предпочтительным способом написания моего метода обслуживания
опция
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"};
}