3

ファイルまたはネットワークからバイト (unsigned char) の受信ストリームがあります。このデータをクラスに配置する必要があり、これを行う NET の方法を探しています。

常にこれを行っている人もいるので、BitConverter を使用するよりも良い方法があると思います。

提供した情報が少なすぎることに気づきました。クラスの例を試してみましょう:

class data { 
void doSmething(); 
int var1; 
float var2; 
} 

次に、このクラスに含まれるデータ (var1 と var2) を f.ex 経由で転送します。ネットワークソケットを接続し、相手側でデータを受信します

4

4 に答える 4

3

Jon が述べたように、何が必要かは明確ではありません。たぶん、あなたが探しているのはバイナリシリアル化について話しているのでしょうか?

于 2008-11-24T09:49:27.120 に答える
1

あなたが何を意味するのかは完全には明らかではありませんが、基本的に後で取得できるようにデータをバッファリングする方法を探している場合は、MemoryStreamがおそらく最善の策です。そこにすべてのデータを書き込み、Positionを 0 に設定すると、データを再度読み取ることができます。

于 2008-11-24T09:44:13.883 に答える
1

パフォーマンスのために、バイナリシリアル化(PiRXが言ったように)またはXMLシリアル化の2つのオプションがありますが、バイナリの方が優れていますが、読みやすさのためにxmlシリアル化を好みます。

 [Serializable]
    [XmlRoot("CONFIGURATION")]
    public class Configuration
    {
        EnterpriseCollection enterprises;
        public Configuration()
        {

            enterprises= new EnterpriseCollection();
        }
        [XmlElement("ENTERPRISE")]
        public EnterpriseCollection Enterprises
        {
            get
            {
                return this.enterprises;
            }
            set
            {
                this.enterprises = value;
            }
        }
        private string name;
        [XmlElement("NAME")]
        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }
于 2008-11-24T10:16:36.517 に答える
0

std::string クラスを使用できます。そのコンストラクターの 1 つは引数として char* を取るため、char* から文字列に直接移動できます。string は、文字列を格納する優れた方法です。 文字列の詳細については、 http://www.cppreference.com/を参照してください。

于 2008-11-25T01:40:02.520 に答える