當投擲FaultException<CustomFault>
這樣的:從WCF服務中拋出FaultException <T>原因'此故障的創建者未指定原因。'
throw new FaultException<CustomFault>(new CustomFault("Custom fault message"));
我得到如下:「此故障的創建者未指定原因」 現在根據this MSDN article一個不需要使用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
時引發的異常?
編輯
通過運行示例項目從this article我得到excact相同的行爲。也許這是由.NET中的更新引起的,文檔/示例沒有被更新。
每當我在WCF中拋出'FaultException',我沒有設置'Reason',並且我沒有遇到任何問題。無法說明爲什麼它不適合你,對不起。 –
AakashM
2012-03-08 09:35:50
在沒有附加VS調試器的情況下調用服務時,您是否也會遇到異常? – 2012-03-08 09:50:42
不,我不知道。也許這只是調試器中未處理異常級別的問題。但對我來說,文檔使用的是一種導致異常的錯誤處理策略似乎是錯誤的:( – 2012-03-08 10:12:55