Так что у меня есть проблема, в которой у меня есть объект, который содержит другие объекты, которые слабо связаны друг с другом. Я хочу, чтобы этот объект был своего рода репозиторием, в котором переменные могут быть прочитаны, но не изменены, если этот объект используется. Это был мой отправной точкой (VB.Net):.Net Как сделать свойства readonly, когда родительский объект помечен как readonly
Public Class CompanyVendorContext
Private _company As ICompany
Private _vendor As IVendor
Public ReadOnly Property Company As ICompany
Get
Return Me._company
End Get
End Property
Public ReadOnly Property Vendor As IVendor
Get
Return Me._vendor
End Get
End Property
Public Sub New(ByVal objCompany As ICompany, ByVal objVendor As IVendor)
Me._company = objCompany
Me._vendor = objVendor
End Sub
End Class
Теперь, соответственно, когда я пытаюсь установить сам объект, например, так:
Dim context As New CompanyVendorContext(New Company, New Vendor)
context.Company = New Company
Это не позволяет мне сделать это , что идеально. Однако, когда я пытаюсь сделать это, то:
Dim context As New CompanyVendorContext(New Company, New Vendor)
context.Company.ID = 1
Это позволяет мне это сделать. Могу ли я установить свойства объекта Company как readonly, но только при доступе к этому объекту CompanyVendorContext?
Недвижимость (единственная) Компания CompanyVendorContext - только для чтения. {Родственностью Компании является то, как все свойства определяются в Компании. – Paparazzi