Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF错误和异常处理_C#_Wcf_Asp.net 4.0 - Fatal编程技术网

C# WCF错误和异常处理

C# WCF错误和异常处理,c#,wcf,asp.net-4.0,C#,Wcf,Asp.net 4.0,在WCF服务中,我希望使用自定义错误处理错误和异常 我需要能够在错误返回的情况下 带有说明和错误代码的CustomFault 如何实现它?首先,您需要为自定义故障创建一个DataContract类。在您的情况下,这个类至少会有一个Error-Code属性和一个Description属性。接下来,在您的服务契约中,您需要使用FaultContract属性来修饰可能引发此错误的任何服务操作。例如: [OperationContract()] [FaultContract(typeof(MyCusto

在WCF服务中,我希望使用自定义错误处理错误和异常

我需要能够在错误返回的情况下

带有说明和错误代码的CustomFault


如何实现它?

首先,您需要为自定义故障创建一个DataContract类。在您的情况下,这个类至少会有一个Error-Code属性和一个Description属性。接下来,在您的服务契约中,您需要使用FaultContract属性来修饰可能引发此错误的任何服务操作。例如:

[OperationContract()]
[FaultContract(typeof(MyCustomFault))]
ResponseDataContract SomeServiceOperation(RequestDataContract request);
try
{
  DoStuff();
}
catch (Exception e)
{
  throw new FaultException<MyCustomFault>(new MyCustomFault
                                              {
                                                Description = "Oh No!",
                                                ErrorCode = 1234
                                              });
}
最后,在服务实现中,您需要将自定义错误作为FaultExcepton抛出。例如:

[OperationContract()]
[FaultContract(typeof(MyCustomFault))]
ResponseDataContract SomeServiceOperation(RequestDataContract request);
try
{
  DoStuff();
}
catch (Exception e)
{
  throw new FaultException<MyCustomFault>(new MyCustomFault
                                              {
                                                Description = "Oh No!",
                                                ErrorCode = 1234
                                              });
}
试试看
{
DoStuff();
}
捕获(例外e)
{
抛出新的FaultException(新的MyCustomFault
{
Description=“哦,不!”,
错误代码=1234
});
}