我想用custome的FaultException這樣WCF趕上定製的FaultException
[DataContract]
public class Fault
{
[DataMember]
public string Message { get; set; }
}
public class MyFault<T>:FaultException<T> where T : Fault
{
public MyFault(T faultClass)
: base(faultClass, new FaultReason(faultClass.Message))
{
}
}
...
throw new MyFault<Fault>(new Fault {Message = "hello"});
...
接口
[OperationContract]
[FaultContract(typeof(Fault))]
string GetData2(int value);
但是當它到達客戶端它將轉變爲FaultE xception
try
{
var res = serv.GetData2(1);
}
catch (MyFault<WcfService1Sample.Fault> ex)
{
label1.Text = ex.Reason.ToString(); //-> i want here
}
catch (FaultException<ServiceReference1.Fault> ex)
{
label1.Text = ex.Reason.ToString(); //-> catch here
}
catch (Exception)
{
throw;
}
我可以在clint上捕獲自定義錯誤嗎? 或它的WCF自動轉換到的FaultException 如何使這一問題的工作
感謝幼獅
你的'Fault'類應該有'DataContract'屬性,'Message'屬性應該是'DataMember'。 – shambulator
你對我忘記把數據合同。但即使我添加它dosnt工作像我希望它的工作。 – kfir