【问题标题】:.NET inheritance with generic interfaces.NET 继承与通用接口
【发布时间】:2010-09-17 02:58:48
【问题描述】:

你好,我目前正在玩城堡项目 ActiveRecord 和远程处理设施。

我目前的问题是我需要找到一种方法来在我的地址类中从 IBaseRepository 实现保存子,但我不知道如何。

这是我当前的代码,VS 在“实现 IAddress”行告诉我 我必须为 [Shared].IBaseRepository(Of [Shared].IAddress) 实现 Sub Save(obj As IAddress)

并上线 Public Overrides Sub Save(ByVal obj As Address) Implements IBaseRepository(Of IAddress).Save

我无法实现保存,因为 [Shared].IBaseRepository(Of [Shared].IAddress) 中没有 Sub Save

我只是不明白:( 请赐教。

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

【问题讨论】:

    标签: .net vb.net generics inheritance interface


    【解决方案1】:
     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
    

    【讨论】:

      猜你喜欢
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-03
      • 2022-01-25
      • 2016-01-05
      • 1970-01-01
      • 2014-02-07
      相关资源
      最近更新 更多