Ich habe eine Sammlung mit vielen Datenübertragungsobjekten, die ich über WCF an einen Silverlight-Client senden muss. Ich verwende den Standard DataContractSerializer und einen HTTPS-Kanal.
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änenentitäten 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 Byte lang sein.
Gibt es einen Trick, damit der DataContractSerializer meine GUIDs als Binärdatei und nicht als ausführliche Zeichenfolgen serialisiert, um die Leistung zu erhöhen?