Итак, после некоторых экспериментов я с удивлением обнаружил, что это вполне приемлемо, в том смысле, что MVC не жалуется на мой защищенный внутренний абстрактный класс метаданных, и проверка модели все еще работает:
Объект частичного домена , созданный инструментом:
Partial Public Class SampleDomainObject
Private _id As Integer
Private _customCode As String
Private _description As String
Public Property ID() As Integer
Get
Return Me._id
End Get
Set(ByVal value As Integer)
Me._id = value
End Set
End Property
Public Property CustomCode() As String
Get
Return Me._customCode
End Get
Set(ByVal value As String)
Me._customCode = value
End Set
End Property
Public Property Description() As String
Get
Return Me._description
End Get
Set(ByVal value As String)
Me._description = value
End Set
End Property
End Class
Объект частичного домена , реализация метаданных
<MetadataType(GetType(SampleDomainObject.Metadata))> _
Partial Public Class SampleDomainObject
Protected Friend MustInherit Class Metadata
<HiddenInput()> _
Public MustOverride Property ID() As Object
<Required(), _
StringLengthRange(4), _
DisplayName("Custom Code")> _
Public MustOverride Property CustomCode() As Object
<Required(), _
StringLength(255)> _
Public MustOverride Property Description() As Object
End Class
End Class
Я сделал это, потому что не сделалЯ хочу реализовать фактические свойства с помощью вспомогательных полей, методов получения и установки в VB.NET для класса метаданных, чтобы свести обслуживание к минимуму (я на .NET 3.5, для меня нет авто-свойств).
Меня беспокоит то, что наличие защищенного абстрактного внутреннего класса может сбивать с толку других, использующих этот объект домена за пределами MVC (мои доменные объекты являются частью общей структуры доступа к данным).
Итакмой вопрос, в мире лучших практик MVC, это приемлемо?Умный даже?Я новичок в MVC, поэтому я приму любой отзыв, который смогу получить.
Спасибо!