Наследование .NET с универсальными интерфейсами - PullRequest
2 голосов
/ 14 октября 2008

Привет. В настоящее время я играю с замковыми проектами ActiveRecord и с удаленным механизмом.

Моя текущая проблема заключается в том, что мне нужно найти способ реализовать подпрограмму save из IBaseRepository в моем классе адресов, и я не знаю, как.

вот мой текущий код, VS говорит мне в строке "внедряет IAddress" что я должен реализовать Sub Save (obj As IAddress) для [Shared] .IBaseRepository (Of [Shared] .IAddress)

и он-лайн общедоступные переопределения 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

1 Ответ

2 голосов
/ 14 октября 2008
 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...