Наследование .NET с универсальными интерфейсами
-
03-07-2019 - |
Вопрос
Привет, я сейчас играю с проектами замков ActiveRecord и средством удаленного взаимодействия.
Моя текущая проблема заключается в том, что мне нужно найти способ реализовать подпрограмму сохранения из IBaseRepository в моем классе адресов, и я не знаю, как это сделать.
Вот мой текущий код, VS сообщает мне в строке «Осуществляет IADdress», что я должен реализовать Sub Save (OBJ как iAdress) для [Shared] .ibaserePository (of [shared] .iaddress)
и в режиме онлайн Public Overrides Sub Save(ByVal obj As Address) Реализует IBaseRepository(Of IAddress).Save
что я не могу реализовать сохранение, потому что в [Shared].IBaseRepository (Of [Shared].IAddress) нет дополнительного сохранения.
Я просто не понимаю :( Пожалуйста, просветите меня.
Тиа
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
Решение
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