Ich habe eine Sammlung mit einer Menge von Datenübertragungsobjekten, die ich über WCF an einen Silverlight-Client senden muss. Ich verwende den Standard-DataContractSerializer und einen HTTPS-Kanal.WCF - So senden Sie GUIDs effizient (nicht als Zeichenfolgen)
Hier ist ein Beispiel für eine Art von 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
}
Die Domäneneinheiten auf der Serverseite verwenden GUIDs als Primärschlüssel. Diese werden zu Strings serialisiert, die 36 Bytes lang sind. Eine GUID in binärer Form sollte nur 16 Bytes lang sein.
Gibt es einen Trick, um den DataContractSerializer serialisieren meine GUIDs als binär anstatt als die ausführlichen Strings, um die Leistung zu erhöhen?