| 

.NET C# Java Javascript Exception

3
Ich nutze in einer herkömmlichen .NET-Anwendung den Auflistungstyp DictionaryBase zur Verwaltung von Schlüssel-/Wertepaaren. Bei der Übernahme der entsprechenden Funktionalität auf das Windows Phone musste ich feststellen, das dieser Auflistungstyp hier nicht verfügbar ist. Wie gehe ich vor? Muss ich die Umsetzung komplette auf anderem Weg vornehmen oder gibt es dennoch eine Möglichkeit zur vereinfachten Portierung?
07.03.2013
Anna-Lena 81 4
1 Antwort
1
Das Windows Phone 7.x erlaubt die Verwaltung von vordefinierten Objekten unter Silverlight über ObservableCollection. Eine direkte Unterstützung von Collections gibt es aber nicht. Und auch das Windows Phone 8 bietet keine Unterstützung für den vollständigen unter .NET bereitgestellten Namespace System.Collections. Eine Übersicht der Windows-Phone-API findest Du in diesem PDF-Dokument. Benötigst Du eine Klasse zur Verwaltung von Kollektionen, kannst Du diese als eigene Kollektion definieren, beispielsweise im Namespace My.Collections. Die Klasse DictionaryBase selbst definierst Du dann als eigene Klasse, die abgeleitet werden muss, also beispielsweise in VB so ("MustInherit" in VB wäre in C# "Abstract"), wobei die Objektliste über ein Objektdatenfeld verwaltet wird, hier mit dem Namen "List". Die zu implementierenden Methoden sind hier dokumentiert:

Namespace My.Collections
Public MustInherit Class DictionaryBase
Public List() As Object = Nothing
'Methoden implementieren
...
Class
End Namespace


Die einzelnen Methoden sollen, in VB mit Overriadable als überschriebbar gekennzeichnet werden:

Public Overridable Sub Methodenname([Parameterliste])
'Methode implementieren
...
End Sub


Darauf aufbauend kannst Du jetzt über eigene Auflistungsklassen neue Klassen des besagten Typs anlegen:

Class MeineAuflistung
Inherits My.Collections.DictionaryBase
'Methoden überschatten
...
End Class


Und darauf aufbauend mit der neuen Klasse arbeiten:

Dim MyCol as New MeineAuflistung


Das ganze wurde hier lediglich grob skizziert. Prinzipiell lassen sich alle Kollektionen der Typen CollectionBase, Stack, Queue, DictionaryBase, ObservableCollection oder auch ReadOnlyCollectionBase auf diese Art und Weise nachbilden.
09.03.2013
Claus M. 2,9k 8
Wenn ich das so umsetze, sollte ich meinen bestehenden Quelltext unverändert übernehmen können. Das Nachbilden ist aber mit einigem Arbeitsaufwand verbunden.
Anna-Lena 09.03.2013

Stelle deine Mobile-Frage jetzt!