( edit : я решил написать это как запись в блоге , поскольку я видел, что это было полезно несколько раз)
У меня были пользователи, прежде чем использовать protobuf-net для этого; при этом используется плотный двоичный формат Google «протокольные буферы», который не содержит имен в сети - только цифры. Это означает, что:
- имена не выставлены на провод
- не имеет значения, является ли имя класса во время выполнения "DateOfBirth" или "a1v"
Это работает путем назначения целочисленного тега членам (свойствам или полям) - например:
[ProtoMember(4)]
public DateTime DateOfBirth {get;set;}
В сериализации используется только «4», но (что важно) вам не нужно поддерживать большое количество кода сериализации. Также может быть легко подключен к ISerializable
, если вам нужно использовать удаленное взаимодействие, а также имеет крючок WCF, если хотите.
Раскрытие: я автор, поэтому я предвзят, но инструмент бесплатный, поэтому вы ничего не потеряете, посмотрев; -p