-1

List <float> floatValues = new List<float>()たとえば、UDPクライアントに送信する必要があるなど、ある種のジェネリックを送信する方法があるのではないかと思っています。それを行う方法がわかりません。どんな助けでも大歓迎です!

4

2 に答える 2

1

あなたがしたいことは、シリアライゼーション/デシリアライゼーションとして知られています

コンピューター サイエンスでは、データの保存と転送のコンテキストで、シリアル化とは、データ構造またはオブジェクトの状態を保存できる形式に変換するプロセスです (たとえば、ファイルまたはメモリ バッファーに保存したり、ネットワーク接続を介して転送したりします)。リンク)、後で同じまたは別のコンピューター環境で「復活」

独自のシリアライザーを構築する代わりに、 XmlSerializerSoapFormatterBinaryFormatterDataContractSerializerDataContractJsonSerializerJavaScriptSerializerJson.NetServiceStackProtobuf.Netなどの既存のライブラリのいずれかを使用することをお勧めします .........

Json シリアライゼーションを使用した例を次に示します。

//Sender
string jsonString = new JavaScriptSerializer().Serialize(floatValues);
byte[] bytesToSend = Encoding.UTF8.GetBytes(jsonString);

//Receiver
string receivedJson = Encoding.UTF8.GetString(bytesToSend);
List<float> floatValues2 = new JavaScriptSerializer()
                                         .Deserialize<List<float>>(receivedJson);
于 2012-11-27T09:55:19.560 に答える
1

floatValuesシリアル化機能 ( XmlSerializerBinaryFormatterまたはDataContractSerializerなど) を使用してシリアル化し、逆シリアル化することができます。

または、独自の「アプリケーション レベル プロトコル」を作成し、ストリーム タイプ名とシリアライザ タイプを設定して、デシリアライズ プロセス中にこの情報を使用することもできます。

于 2012-11-27T09:09:52.313 に答える