martes, 16 de diciembre de 2008

Negocio.Core.CollectionBase.vb

Namespace Negocio

  <Serializable()> _
  Public MustInherit Class ColeccionBase(Of T As ObjetoBase) : Inherits Generic.List(Of T) : Implements Dal.ILoader

    Public Overloads Sub Remove(ByVal id As String)
      MyBase.Remove(Item(id))
    End Sub

    Default Public Overloads ReadOnly Property Item(ByVal id As String) As T
      Get
        Return Me.Find(Function(o As ObjetoBase) o.Id = id)
      End Get
    End Property

#Region " Interface ILoader "
    Private _ConnectionProvider As Dal.ConnectionProviderDelegate = Nothing
    <Xml.Serialization.XmlIgnore()> _
    Public Property ConnectionProvider() As Dal.ConnectionProviderDelegate Implements Dal.ILoader.ConnectionProvider
      Get
        Return _ConnectionProvider
      End Get
      Set(ByVal value As Dal.ConnectionProviderDelegate)
        _ConnectionProvider = value
      End Set
    End Property

    Private _TransactionProvider As Dal.TransactionProviderDelegate = Nothing
    <Xml.Serialization.XmlIgnore()> _
    Public Property TransactionProvider() As Dal.TransactionProviderDelegate Implements Dal.ILoader.transactionProvider
      Get
        Return _TransactionProvider
      End Get
      Set(ByVal value As Dal.TransactionProviderDelegate)
        _TransactionProvider = value
      End Set
    End Property

    Public Overridable Function GetBinder() As Dal.ObjectLoader Implements Dal.ILoader.GetObjectLoader
      Return Nothing
    End Function
#End Region

    <NonSerialized()> _
    Private _Tag As Object = Nothing
    <Xml.Serialization.XmlIgnore()> _
    Public Property Tag() As Object
      Get
        Return _Tag
      End Get
      Set(ByVal Value As Object)
        _Tag = Value
      End Set
    End Property

  End Class

End Namespace

No hay comentarios: