Разработка приложения с использованием PCL и IoC с аннотациями
Я пишу приложение с использованием библиотек PCL и шаблонов IoC для облегчения кросс-платформенной разработки на iOS, Android и т. Д. Мой репозиторий реализует паттерн IRepository, и у меня есть конкретная реализация, использующая SQLite.Net ORM. Чтобы в полной мере воспользоваться SQLite.Net, мне нужно украсить свои модели аннотациями, например:
public class Stock
{
[PrimaryKey, AutoIncrement]
public int Id { get; set; }
}
На каком-то этапе я мог бы решить разработать другую конкретную реализацию, например, Хранилище X.
Мой вопрос:
Наличие таких аннотаций вводит зависимость от SQLite для моей модели / сущности, которая по сути является просто POCO. Итак, как у меня есть аннотации, без зависимости? Например, если в будущем я использовал Repository X и удалил SQLite, мне нужно было бы удалить аннотации?
Одним из способов, которым я думал об этом, было определение абстрактного класса, и у моего производного класса есть аннотации. Какие-нибудь мысли?
1 ответ
Вы можете увидеть, есть ли у Sqlite какой-либо тип сопоставления XML-карт класса / атрибутов (как это делает LINQ.Data)
или любой тип использования метаданных. Как MVC делает на моделях:
[MetadataType(typeof(TestMetadata))]
class Test
{
public int Id { get; set; }
}
class TestMetadata
{
[DisplayName("ID")]
public int Id { get; set; }
}