При выдаче FaultException
следующим образом:
throw new FaultException(new CustomFault("Custom fault message"));
я получаю следующее: "Создатель этой ошибки не указать причину."
Теперь, согласно этой статье MSDN, не требуется использовать FaultReason
. У меня есть следующий контракт на обслуживание:
[OperationContract]
[FaultContract(typeof(CustomFault))]
CustomType[] SomeMethod(int someParameter);
[DataContract]
public class CustomFault
{
private string report;
public CustomFault(string message)
{
this.report = message;
}
[DataMember]
public string Message
{
get { return this.report; }
set { this.report = value; }
}
}
В статье MSDN есть комментарий, в котором говорится, что это обязательно использовать другую FaultReason
, но в нескольких других местах я видел людей, утверждающих, что вы не должны использовать FaultReason
без необходимости.
Итак, мой вопрос заключается в следующем; действительно ли обязательно использовать FaultReason
, а если нет, то как я могу предотвратить возникновение исключения при попытке создать FaultException
?
РЕДАКТИРОВАТЬ
Запустив пример проекта из этой статьи, я получаю точно такое же поведение. Возможно, это вызвано обновлением в .NET, а документация/образцы не обновляются.