code_junkie

.NET inheritance with generic interfaces

Nov 11th, 2011
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. Public Interface IBaseRepository(Of T As Class)
  2. Sub Save(ByVal obj As T)
  3. End Interface
  4.  
  5. Public Interface IAddress
  6. Inherits IBaseRepository(Of IAddress)
  7. Property Guid() As Guid
  8. Property CompanyName() As String
  9. Property Surename() As String
  10. Property Christianname() As String
  11. End Interface`
  12.  
  13. Public Class BaseRepository(Of T As Class)
  14. Inherits MarshalByRefObject
  15. Implements IBaseRepository(Of T)
  16.  
  17. Protected mediator As ActiveRecordMediator(Of T)
  18.  
  19. Public Overridable Sub Save(ByVal obj As T) Implements IBaseRepository(Of T).Save
  20. ActiveRecordMediator(Of T).Save(obj)
  21. End Sub
  22. End Class
  23.  
  24.  
  25. <ActiveRecord("Address")> _
  26. Public Class Address
  27. Inherits BaseRepository(Of Address)
  28. Implements IAddress
  29.  
  30. Public Overrides Sub Save(ByVal obj As Address) Implements IBaseRepository(Of IAddress).Save
  31. MyBase.Save(obj)
  32. End Sub
  33. End Class
  34.  
  35. Public Class Address
  36. Inherits BaseRepository(Of Address)
  37. Implements IAddress
  38.  
  39.  
  40. Public Overrides Sub Save(ByVal obj As Address)
  41. MyBase.Save(obj)
  42. End Sub
  43.  
  44.  
  45. Public Overloads Sub Save(ByVal obj As IAddress) _
  46. Implements IBaseRepository(Of IAddress).Save
  47. End Sub
  48. '
  49. ' Some other stuff...
  50. '
  51. End Class
Add Comment
Please, Sign In to add comment