6、数据表示、异常处理与持久服务全解析

数据表示、异常处理与持久服务全解析

1. 数据表示与继承问题

在操作调用中,若要使用派生类型的参数替代基类型的参数,就需要 System.ServiceModel.ServiceKnownType 属性。这意味着在数据契约版本控制时,应避免使用继承。因为当期望接收基类型,却收到派生类型时,若代码未添加 System.ServiceModel.ServiceKnownType 属性来预先处理派生类型,派生类型的序列化就会失败。

Windows Communication Foundation 会隐式使用 System.Runtime.Serialization.DataContractSerializer 。以下示例展示了如何单独使用它将数据序列化为 XML:

MemoryStream stream = new MemoryStream();
DataContractSerializer serializer =
new DataContractSerializer(typeof(ClientViewOfData));
serializer.WriteObject(stream, calculation);
Console.WriteLine(
UnicodeEncoding.UTF8.GetChars(stream.GetBuffer()));
2. 异常处理

数据契约有助于向客户端通知服务中可能出现的异常。以下是具体步骤:
1. 在 Seria

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值