У меня многоязычная система, и везде у меня есть то, что я бы назвал «свойствами оболочки» в каждом классе, например:
Public Property Name(Optional ByVal ForceLanguageCode As String = Nothing) As String
Get
Return Translations.GetByCode(Me.EntityID, "name", ForceLanguageCode)
End Get
Set(ByVal value As String)
Translations.SetByCode(Me.EntityID, "name", value, ForceLanguageCode)
End Set
End Property
Я бы затем скопировал и вставил этот коддля каждого переводимого поля.
Я надеюсь, что смогу как-то заменить это одной строкой кода, классом.Единственное, что меняется каждый раз, - это имя поля, такое как «имя», «заголовок» или «тема» и т. Д. Это кажется пустой тратой, и я хочу, чтобы моя система была такой же простой в использовании, каквозможно для разработчиков.
Я провел некоторое исследование атрибутов, но не думаю, что это мой ответ:
1) Я не знаю, как автоматически создавать экземпляры объектов, особенно еслиэто расширение сущности LINQ, где подпись New () уже сгенерирована DBML.В моей нынешней технике используются статические функции.
2) «EntityID» - это информация в реальном времени, а не во время компиляции.
Кто-нибудь может подсказать, как мне убрать этот беспорядок?