【发布时间】:2010-11-18 22:13:53
【问题描述】:
我有一个集合,其中包含需要通过 WCF 发送到 Silverlight 客户端的大量数据传输对象。我正在使用默认的 DataContractSerializer 和 HTTPS 通道。
这是一种 DTO 类型的示例。
[DataContract(Namespace = Constants.OrgStructureNamespace)]
public class EntityInfo : IExtensibleDataObject
{
[DataMember] public Guid EntityID { get; set; }
[DataMember] public EntityType EntityType { get; set; }
[DataMember] public IList<Guid> EntityVersions { get; set; }
[DataMember] public IList<Guid> OrganisationStructures { get; set; }
#region IExtensibleDataObject Members
...
#endregion
}
服务器端的域实体使用 GUID 作为主键。这些被序列化为 36 字节长的字符串。二进制形式的 GUID 应该只有 16 个字节长。
有没有什么技巧可以让 DataContractSerializer 将我的 GUID 序列化为二进制而不是冗长的字符串以提高性能?
【问题讨论】: