Чтобы использовать сериализацию для хранения кеша в приложение. Необходимо поддерживать совместимость между вресиями.
Как это обеспечить:
- использовать Version tolerant serialization.
- перезаписывать файл в случае если известно что модель поменялась.
- Create object by model.
- Get hashcode of object.
- Each time object creation must be the same.
- Every implementation of abstraction must be set.
objectGenerator = new ObjectGenerator();
// set specific implementations to abstact item
objectGenerator.AddTypeMap<IItem, ItemImplOne>();
objectGenerator.AddTypeMap<IItem, ItemImplTwo>();
// generate object
var model = _objectGenerator.Generate<ModelWithAbstraction>();
// serialize to bytes and get hashcode
var hash = objectGenerator.GetHash()); // 177346035
- Get hashcode of each object name field.
- none