Ich würde gerne wissen, was ist das beste Muster beim Zurückgeben von Objekten aus benutzerdefinierten Auflistungsklassen. Zu meinem Problem veranschaulichen, hier ein Beispiel:Frage zu benutzerdefinierten Sammlungen in C#
ich eine Customer-Klasse haben:
public class Customer
{
//properties
//methods
}
Dann habe ich eine Kunden Sammlung Klasse:
public class Customercollection: Collection<Customer>
{
public Collection<Customer> FindCustomers()
{
//calls DAL and gets a Collection of customers
Collection<Customer> customers = DAL.GetCustomers();
return customers;
}
}
nun eine alternative Version dieses Verfahrens kann sein:
public class Customercollection: Collection<Customer>
{
public Collection<Customer> FindCustomers()
{
//calls DAL and gets a Collection of customers
Collection<Customer> customers = DAL.GetCustomers();
foreach(Customer c in customers)
this.Add(c);
return this;
}
}
Ich möchte gerne diskutieren Welches ist der bessere Ansatz? Und gibt es einen anderen Ansatz als zwei über zwei?
Meine DAL gibt eine Sammlung von DTOs zurück, wie die Collection und in meiner BL-Methode erstelle ich eine coll ection von tatsächlichen Geschäftsobjekten von diese DTOs, wie: Sammlung dtoList = DAL.GetCustomers(); Kollektion Kunden = neue Kollektion (); foreach (KundendTO dto in dtoList) { Kunde Kunde = neuer Kunde (dto); // hier den Konstruktor kopieren, der die Objekteigenschaften füllt customers.Add (Kunde); } Kunden zurückgeben; –
Raghav
@Raghav - bitte sehen Sie meine aktualisierte Antwort. –
Vielen Dank für Ihre Antwort! Eine kleine Frage, in diesem Link: http://blogs.msdn.com/kcwalina/archive/2005/09/26/474010.aspx Cwalina in seinem Kommentar erwähnt, dass: „Wir empfehlen die Verwendung Sammlung Readonlycollection, oder KeyedCollection für Ausgänge und Eigenschaften und Schnittstellen IEnumerable , ICollection , IList für Eingänge.“ Bedeutet das, dass wir Collection <> anstelle von IList <> zurückgeben sollten? Ich will nur deine Meinung dazu hören. –
Raghav