Eredità .NET con interfacce generiche
-
03-07-2019 - |
Domanda
Ciao, sto attualmente giocando con i progetti di castello ActiveRecord e la struttura di remoting.
il mio problema attuale è che ho bisogno di trovare un modo per implementare il sub di salvataggio da IBaseRepository nella mia classe di indirizzi e non so come.
ecco il mio codice attuale, VS mi dice sulla riga "implementa IAddress" che devo implementare Sub Save (obj As IAddress) per [Shared] .IBaseRepository (Of [Shared] .IAddress)
e on-line Sostituisce pubblico Salva secondario (ByVal obj As Address) Implementa IBaseRepository (Of IAddress) .Save
che non posso implementare Salva perché non esiste un salvataggio secondario in [Shared] .IBaseRepository (Of [Shared] .IAddress)
Non capisco :( per favore illuminami.
tia
Public Interface IBaseRepository(Of T As Class)
Sub Save(ByVal obj As T)
End Interface
Public Interface IAddress
Inherits IBaseRepository(Of IAddress)
Property Guid() As Guid
Property CompanyName() As String
Property Surename() As String
Property Christianname() As String
End Interface`
Public Class BaseRepository(Of T As Class)
Inherits MarshalByRefObject
Implements IBaseRepository(Of T)
Protected mediator As ActiveRecordMediator(Of T)
Public Overridable Sub Save(ByVal obj As T) Implements IBaseRepository(Of T).Save
ActiveRecordMediator(Of T).Save(obj)
End Sub
End Class
<ActiveRecord("Address")> _
Public Class Address
Inherits BaseRepository(Of Address)
Implements IAddress
Public Overrides Sub Save(ByVal obj As Address) Implements IBaseRepository(Of IAddress).Save
MyBase.Save(obj)
End Sub
End Class
Soluzione
Public Class Address
Inherits BaseRepository(Of Address)
Implements IAddress
Public Overrides Sub Save(ByVal obj As Address)
MyBase.Save(obj)
End Sub
Public Overloads Sub Save(ByVal obj As IAddress) _
Implements IBaseRepository(Of IAddress).Save
End Sub
'
' Some other stuff...
'
End Class