Announcement

Collapse
No announcement yet.

List / Collection mit 2 Typ-Argumenten?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • List / Collection mit 2 Typ-Argumenten?

    Hallo,

    ich benötige sowas wie List<string, Double> oder Collection<string, Double>, was aber ja so nicht möglich ist. Ich kann kein Dictionary benutzen, weil die Klasse als Webservice eingesetzt wird und Dictionary nicht serialisiert werden kann.
    Zwar könnte ich mir eine eigene Struktur mit den benötigten zwei Werten erstellen und diese dann als Typ-Argument für List / Collection benutzen, möchte das aber eigentlich vermeiden, da der Einsatzort selbst schon in einer eigenen Struktur liegt und mir das dann zu verschachtelt wird (aber wenn es nicht anders geht, mache ich das natürlich). Hat jemand einen Tip?

    Grüße,
    Rob

  • #2
    Also aus Frameworksicht macht List<string, double> gar keinen Sinn. Vielleicht kannst Du Dir ja sowas bauen:

    [highlight=c#]
    public class DataContainer<T,U>
    {
    public T Data1 { get; set; }
    public U Data2 { get; set; }
    }
    [/highlight]

    Dann kannst Du Dir praktisch so eine Liste generieren:

    [highlight=c#]
    List<DataContainer<string, double>> container = new List<DataContainer<string, double>>();
    [/highlight]

    Allerdings bin ich mir nicht ganz sicher obs da nicht beim de-/serialisieren Probleme gibt.

    Was spricht denn gegen die Verwendung von DTOs für den WebService? Das ist wohl der gängigste Weg.

    Comment


    • #3
      Danke für Deine Hilfe. Den Einsatz von DTOs muss ich erstmal nachlesen - vielleicht kenne ich das schon, aber zumindest nicht unter diesem Schlagwort.

      Comment


      • #4
        Naja DTO ist einfach sowas:

        [highlight=c#]
        public class MyData
        {
        public string StringData { get; set; }
        public double DoubleData { get; set; }
        }
        [/highlight]

        Im Endeffekt einfach nur eine Klasse als Datencontainer. So macht man das eigentlich üblicherweise mit WebServices. Man packt die Daten in so ein Datencontainerobjekt schickt sie durch den WebService und entpackt sie auf der anderen Seite wieder in passende Datenstrukturen zurück. Es kann ja durchaus auch sein, dass auf einen WebService von verschiedenen Programmierwelten zugegriffen wird.

        Für DTOs (Data Transfer Object)s gibt es auch noch andere Namen. Manche sagen DAOs oder POCOs (wobei POCOs noch ein bischen mehr als nur Daten ist).

        Comment


        • #5
          Oh ja, ein alter Hut. Das mache ich tatsächlich schon immer so. Da ich allerdings aus der Java-Welt komme, kannte ich das eher als DAOs bzw. POJOs (ich denke, das C ist äquivalent zum J).

          In der Tat habe ich mir für die Datenübermittlung bereits ein DTO angelegt - und darin benötige ich (bzw. möchte ich gern so haben) nun die zusätzliche o.g. Datenstruktur. Ich denke, ich werde es so machen wie Du vorgeschlagen hast.

          Besten Dank,
          Rob

          Comment


          • #6
            Var.1
            Benutze einfach ein DataSet mit einer Tabelle mit 2 Spalten von typen String und Doubel.

            Var. 2
            Benutze eine Classe mit Attirbut [Serializable] mit String und Double drin.
            Übergebe dann ARRAY aus dieser Classe. (nicht LIST)

            3. Recherchiere zum Thema "Übergabe von komplexen datentypen über WS"
            Bitte vergessen Sie nicht die Antwort zu bewerten. Danke.:-)

            Comment

            Working...
            X