Вопрос

У меня есть входящий поток байтов (без знака) из файла или сети. Мне нужны эти данные в классе, и я ищу NET-способ сделать это.

Бьюсь об заклад, некоторые делают это все время, поэтому я думаю, что есть лучший способ сделать это, чем использование BitConverter.

Я понимаю, что предоставил слишком мало информации. Позвольте мне попробовать пример класса:

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

Затем я хочу передать данные (var1 и var2), содержащиеся в этом классе, через f.ex. сетевой сокет и получать данные на другом конце

Это было полезно?

Решение

Как уже упоминал Джон, не ясно, что вам нужно. Может быть, вы говорите, может быть, это двоичная сериализация что вы ищете?

Другие советы

Не совсем понятно, что вы имеете в виду, но если вы в основном ищете способ буферизации данных, чтобы вы могли получить их позже, MemoryStream , вероятно, является лучшим выбором. Запишите в него все свои данные, а затем установите Положение 0, и вы можете снова прочитать данные.

У вас есть 2 варианта: двоичная сериализация (как сказал PiRX) или XML-сериализация для повышения производительности, чем лучше двоичная, но я предпочитаю сериализацию 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;
            }
        }

вы можете использовать класс std :: string. Один из его конструкторов принимает char * в качестве аргумента, чтобы вы могли переходить от char * к строке. и строка - отличный способ хранения строк вашего персонажа. перейдите на http://www.cppreference.com/ для получения дополнительной информации о строках

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top