Forum: ASP.NET2.0 |
Thema:
Inherit, MustOverride, ... |
Von:
Bernhard Grojer (
13.07.2006 09:07) |
Hallo!
Ich habe einen Basis-Listen-Klasse:
Class ListBase(of T)
Inherits System.Collection.Generic(of T)
'CustomFilter (Reflection)
'CustomSorting (Reflection)
End Class
Jede meiner benötigen Klasse lasst ich von dieser erben. T übergibt immer den Typ der Objekte.
Class PersonList
Inherits ListBase(of Person)
'Custom Functions for Person Objects, ...
End Class
Das funktioniert wunderbar und ich habe Grundsätzlichen Code schön auslagern können. Und ich denke das ist der Weg wie inherits benutzt werden soll.
Ich hab nun das selbe bei einer Mapper Klasse gemacht (eine Klasse die sich an ObjectDatasource etc. binden lässt, sich Daten aus dem Cache oder via TypedDatasets besorgt und in meine Businessobjects umwandelt).
< System.ComponentModel.DataObject()> _
Public MustInherit Class MapperBase(of T, L)
End Class
Für jede Art von Object gibt es nun wieder eine Eigene Klasse die von der Grundklasse (MapperBase) erbt. T steht wieder fürs Objekt, L für die Liste.
Public Class PersonMapper
Inherits MapperBase(of Person, PersonList)
End Class
Soweit so gut. Damit habe ich automatisch in den einzelnen Mappern System.ComponentModel festgelegt. Und mein Code wird weniger.
Nun gibt es allerdings weitere Grundfunktionalität die ich nicht wirklich abbilden kann:
System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, True)> _
Public MustOverride Function add(ByVal obj As T) As Boolean
Diese Function muss somit in jeder Mapperklasse Overrides werden.
Das gefällt mir aber nicht wirklich weil ich nicht jedes mal das hier neu schreiben will.
< System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, True)> _
Gibts dafür einen Lösungsansatz?
Gibts irgendwo mehr zu Lesen zum Thema inherit, Interface, usw. usf?
Betreff |
Von |
Datum |
|
  |
AW: Inherit, MustOverride, ...
Das was dir nicht gefällt immer zu schreiben ist ein Attribut, welches immer nur auf den nachfolgende Anweisung wirkt. Daher musst du es immer mit angeben oder du vermeidest ein Überschreiben, dann... |
 |
 |
 |
|
|
Ralf
Ehlert
|
13.08.2006 17:50 |
|
  |
AW: AW: Inherit, MustOverride, ...
Ich habs auf 2 Funktionien aufgeteilt. Die eine ist Mustoverride und führt den eigentlichen Code aus, die andere Funktion mit dem Attribut ruft diese Funktion auf. <br><br>Somit erspar ich mir immer das... |
 |
 |
 |
|
|
Bernhard
Grojer
|
14.08.2006 10:10 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!