Nic*_*sen 8 c# error-handling wcf
扔FaultException<CustomFault>
这样的时候:
throw new FaultException<CustomFault>(new CustomFault("Custom fault message"));
Run Code Online (Sandbox Code Playgroud)
我得到以下内容:"此错误的创建者未指定原因." 现在根据这篇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; }
}
}
Run Code Online (Sandbox Code Playgroud)
有关MSDN文章的评论表明它必须使用另一个FaultReason
,但在其他几个地方,我看到有人认为FaultReason
除非必要,否则你不应该使用它.
所以我的问题如下; 是否真的必须使用FaultReason
,如果不是 - 我如何防止在尝试抛出时引发的异常FaultException
?
编辑
通过从运行示例项目这篇文章中,我得到了excact相同的行为.也许这是由.NET中的更新引起的,文档/样本没有更新.
Enr*_*lio 10
故障原因是必需的,而细节是可选的.
WCF使用FaultException.Reason属性的值来填充SOAP规范<faultstring>
所需的SOAP Fault元素:
faultstring
faultstring元素旨在提供人类可读的故障解释,而不是用于算法处理.[...]它必须存在于SOAP Fault元素中,并且应该至少提供一些解释故障性质的信息.
因此,在从WCF服务抛出FaultException时,必须提供错误原因.
归档时间: |
|
查看次数: |
9431 次 |
最近记录: |