जब एक FaultException<CustomFault>
इस तरह फेंक:डब्ल्यूसीएफ सेवाओं से एक 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; }
}
}
कि सुझाव है कि यह अन्य FaultReason
उपयोग करने के लिए अनिवार्य है MSDN लेख पर एक टिप्पणी है , लेकिन कई अन्य स्थानों में मैंने लोगों को बहस करते हुए देखा है कि आपको FaultReason
का उपयोग तब तक नहीं करना चाहिए जब तक आवश्यक हो।
तो मेरा प्रश्न इस प्रकार है; FaultReason
का उपयोग करना वास्तव में अनिवार्य है और यदि नहीं - FaultException
फेंकने का प्रयास करते समय मैंने उठाए गए अपवाद को कैसे रोक सकता हूं?
संपादित
नमूना परियोजना this article से मैं excact समान व्यवहार प्राप्त चलाकर। हो सकता है कि यह .NET में एक अद्यतन के कारण होता है जो दस्तावेज़/नमूने अद्यतन नहीं किया जा रहा है।
जब भी मैंने डब्ल्यूसीएफ में 'FaultException' फेंक दिया है, मैंने 'कारण' सेट नहीं किया है, और मुझे कोई समस्या नहीं है। खेद नहीं है कि यह आपके लिए क्यों काम नहीं कर रहा है, क्षमा करें। –
AakashM
क्या आप अपवाद प्राप्त करते हैं जब आप वीएस डीबगर संलग्न किए बिना अपनी सेवा का आह्वान करते हैं? –
नहीं मैं नहीं करता हूं। शायद यह डीबगर में अनचाहे अपवाद स्तर का सिर्फ एक प्रश्न है। लेकिन यह मेरे लिए गलत लगता है कि दस्तावेज एक गलती हैंडलिंग रणनीति का उपयोग कर रहा है जो अपवाद का कारण बनता है :( –