ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
274
274
EMPFEHLEN
-
Hallo zusammen!
Nach stundenlangem Versuchen bin ich mittlerweile sowohl enttäuscht als auch genervt von .NET. Alles was ich versuche ist eine möglichst dynamische Funktion zu erstellen die es ermöglicht aus einem Speicherstrom ein Objekt zu erstellen.
In C++ würde ich das folgendermassen machen:
Code :1 2 3 4 5
template<typename T> void Read(T& value) { memcpy(&value, m_pBuffer, sizeof(T)); }
In C++/CLI sitze ich nun verzweifelt vor der Umsetzung dessen. Ich hatte schon dutzende Versuche gestartet, alle bisher ohne Erfolg. Bisher sieht das ganze so aus:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13
generic<typename T> void Read(T% in) { Type^ t = T::typeid; if(t->Equals(System::String::typeid)) { in = (T)System::Text::Encoding::ASCII->GetString(m_content, m_readPoint, m_content->Length - m_readPoint); m_readPoint += ((String^)in)->Length + 1; } else { } }
Wie kriege ich das nun für alle anderen Typen hin? Der soll einfach sizeof(T) Bytes aus meinem MemoryStream (m_reader) lesen und das übergebene Element damit "befüllen". Ist so etwas wirklich nicht machbar? Wenn ja, dann werde ich wohl wohl oder übel .NET wieder den Rücken kehren müssen, das wäre doch einge mehr als gigantischer Flop.
Gruss
Cromon
-
hab kein VS hier
aber es müsste doch die Methode ReadByte / ReadBytes im MemoryStream geben.
Ansonsten ev. weiter an BinaryReader den Stream geben (sollte aber nicht nötig sein).
-
Ich kenn dieses Problem nur aus der Serialisierungs-Thematik: http://www.codeproject.com/KB/cs/objserial.aspx
Die Klasse BinaryFormatter(http://msdn.microsoft.com/de-de/libr...er(VS.80).aspx) übernimmt üblicherweise deine gewünschte Aufgabe aus einem binären Strom ein Objekt zu erzeugen.
-
Hallo zusammen!
Das Thema habe ich jetzt ganz vergessen. Ich habe das jetzt durch Reflection soweit zu meiner Zufriedenheit hergestellt. Es ist zwar nicht ganz gleich wie in C++, aber vertretbar.
Ich verwende einen BitConverter und über Reflection hole ich mir die Properties des Typs. Dadurch kann ich das dann soweit ganz sauber serialisieren.
Den BinaryFormatter habe ich auch schon verwendet, aber entweder ich hab den nicht richtig angewandt oder er macht nicht das, was ich erwarte
Gruss
Cromon
Ähnliche Themen
-
Geschlossenen MemoryStream wieder öffnen
Von Danielku15 im Forum .NET CaféAntworten: 4Letzter Beitrag: 20.07.09, 08:31 -
Convertierung eines Strings in MemoryStream
Von DK1FiWa im Forum .NET CaféAntworten: 1Letzter Beitrag: 29.05.09, 12:08 -
Vom memoryStream zur Ausführung ohne Umweg als File
Von milvus im Forum .NET DatenverwaltungAntworten: 5Letzter Beitrag: 30.11.06, 11:22 -
Problem mit MemoryStream
Von JK_net im Forum .NET ArchivAntworten: 5Letzter Beitrag: 01.08.05, 14:08 -
[C#] MemoryStream in Bitmap
Von havalan im Forum C/C++Antworten: 0Letzter Beitrag: 30.09.02, 14:57





Zitieren
Login





