Что может быть хорошим шаблоном для разработки общих моделей JSON, в которых добавляются свойства идентификации во время выполнения на основе настроенного хранилища документов?

В настоящее время модели идентичности жестко запрограммированы, и модели наследуются от них, однако я бы предпочел просто написать универсальные модели без необходимости указывать такие свойства идентичности, как это (потому что мне понадобится другое определение модели для той же модели, в зависимости от по типу хранилища)

PersonModel : CouchAdapterModel, IJsonModel {
     string Name { get; set; }
}

CouchAdapterModel : IJsonModel {
     string _id { get; set; }
     string _rev { get; set; }
}

Таким образом, PersonModel получает эти два унаследованных свойства и будет соответственно в сериализованном Json, как это необходимо для couch.

но давайте скажем, что я не хочу использовать наследование для этого, скорее я хочу, чтобы свойства идентификатора подразумевались или добавлялись во время выполнения на основе выбранного хранилища документов

тогда я могу определить модель в целом, но затем, если я захочу сохранить или прочитать ее с чего-то другого, кроме CouchDB, она получит соответственно свойства идентичности

Не могу придумать супер чистый способ сделать это, хотя... одна мысль была иметь какое-то свойство IJsonIdentity, требуемое тогда, это было бы внедрено во время выполнения как

CouchDBIdentity : IJsonIdentity {
    string _id { get; set; }
    string _rev { get; set; }
}

или же

MongoDBIdentity : IJsonIdentity {
    string whatever { get; set; }
}

и затем во время выполнения, когда поставщик модели создает модель, внедрение зависимости или что-то устанавливает свойство идентификации в модели...

проблема заключается в том, что я больше не могу получить свойства на корневом уровне модели, вместо этого они находятся под свойством Identity этой модели, поэтому стандартный JSON для бэкэнда не будет совпадать, и люди не смогут просто использовать его как и ожидалось...

любая идея будет принята с благодарностью

0 ответов

Другие вопросы по тегам