如果我让我的异常Serializable像这样article from msdn,那么我的异常可以通过WCF序列化?可序列化的异常和WCF
1
A
回答
1
是的,你可以序列化异常并使用WCF返回它们。我写了一个应用程序,WCF客户端需要在服务器上发生真正的异常;不仅仅是一个高水平的故障。
下面是步骤来实现我们所做的:
1 - 声明一个类EncodedException与单一字符串属性
public class EncodedException
{
public string SerializedException {get;set;}
}
2 - 在您的服务合同增加,表明该属性的服务可能会返回一个FaultException异常。
[ServiceContract()]
public class MyService
{
[OperationContract]
[FaultContract(typeof(EncodedException),
ProtectionLevel = ProtectionLevel.EncryptAndSign)]
public string Method1();
}
3 - 在您服务实现在所有的服务操作添加一个try/catch:
public void Method1()
{
try
{
// some code here
}
catch(Exception ex)
{
EncodedException encodedException = Helper.SerializeException(ex);
throw new FaulException<EncodedException>();
}
}
4 - 在您的客户端代码捕获异常并解开它:
public void someMethod()
{
try
{
serviceClient.Method1();
}
catch(FaulException<EncodedException> ex)
{
Exception decodedException = Helper.DeserializeException(ex);
throw new decodedException();
}
}
5 - 编写助手来序列化/反序列化异常。如果您还需要该部分的帮助,请告诉我。
我希望这会有所帮助。
0
我不明白为什么不这样做,如果您已经成功创建了一个可以通过经典asmx序列化的对象,那么它在WCF中会很好。
相关问题
- 1. WCF序列化异常 - NetDataContractSerializer
- 2. 序列化异常WCF + Silverlight
- 3. wcf调用System.Windows.Media.Media3D.Vector3d序列化的异常
- 4. WCF CFClientBase序列化Stackoverflow异常?
- 5. 序列化异常是可抛出的
- 6. 序列化异常
- 7. 序列化异常
- 8. 即使在提供DataContract和DataMember后,WCF - 序列化异常
- 9. WCF序列化和反序列化
- 10. $ 1.class和$ 2.class不是jgroups中的可序列化异常
- 11. WCF - 由于循环引用导致的序列化异常
- 12. GWT - RPC序列化异常
- 13. 异常反序列化JSON
- 14. JIL反序列化异常
- 15. wcf netdatacontractserializer异常序列化idictionary与枚举作为键
- 16. WCF序列化和缓存
- 17. WCF序列化和性能
- 18. WCF序列化和接口
- 19. WCF序列化
- 20. 序列化WCF
- 21. wcf序列化
- 22. WCF的XmlElement序列化/反序列化
- 23. GWT奇怪的序列化异常
- 24. 意外的类型 - 序列化异常
- 25. 序列化GWT RPC的ANTLR异常
- 26. TestRunType的序列化抛出异常
- 27. 处理ServiceStack中的序列化异常
- 28. 异常反序列化NHibernate的对象
- 29. WCF故障和异常
- 30. WCF XML和序列化与列表
所以你可以直到我如何使用EntLib4.1来做到这一点 – BigOmar 2009-11-21 09:06:03