そのため、互いにゆるく関連している他のオブジェクトを保持するオブジェクトがあるという問題があります。このオブジェクトを、変数を読み取ることができる一種のリポジトリにしたいだけですが、このオブジェクトが使用されている場合は変更されません。これが私の出発点でした(VB.Net):
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 オブジェクトのプロパティを読み取り専用として設定できますか?