目前,身份模型是硬编码的,并且模型从它们继承,但是我宁愿只编写通用模型而不必像这样指定身份属性(因为我需要为同一模型使用不同的模型定义,具体取决于关于存储类型)
PersonModel : CouchAdapterModel, IJsonModel {
string Name { get; set; }
}
CouchAdapterModel : IJsonModel {
string _id { get; set; }
string _rev { get; set; }
}
因此 PersonModel 获得了这两个继承的属性,并将根据沙发的需要相应地在序列化的 Json 中
但是假设我不想为此使用继承,而是希望在运行时根据所选的文档存储隐含或添加身份属性
然后我可以一般地定义模型,但是如果我想保存它或从 CouchDB 以外的其他东西中读取它,它将相应地获得身份属性
想不出一种超级干净的方法来做到这一点......一个想法是需要某种 IJsonIdentity 属性,然后它将在运行时注入,如
CouchDBIdentity : IJsonIdentity {
string _id { get; set; }
string _rev { get; set; }
}
或者
MongoDBIdentity : IJsonIdentity {
string whatever { get; set; }
}
然后在运行时,当模型提供者创建模型时,依赖注入或其他东西在模型上设置身份属性......
然后问题就变成了我不能再在模型的根级别获取属性,而是在该模型的 Identity 属性下,因此后端的标准 JSON 将不匹配,人们不能只使用它正如预期的那样……
任何想法将不胜感激