Сериализация и десериализация объектов в varbinary в SQL C # - PullRequest
0 голосов
/ 05 декабря 2018

Я не смог найти ответ на этот вопрос

На самом деле я дизайнер карт, использующий C # Windows App. Я хочу сохранить пользовательскую карту в базе данных, поэтому сначала я получил все свойства карты и попыталсясериализовать его и поместить в байтовый массив.Это код для сохранения карты в байтовый массив и ее сериализации.

public byte[] SaveAsByte()
    { 
        //Save this card in a file
        SerializedCard sc = new SerializedCard();
        BinaryFormatter formatter = new BinaryFormatter();
        Stream stream = new System.IO.MemoryStream();

        sc.CardWidth = this.CardWidth;
        sc.CardHeight = this.CardHeight;
        sc.BackCard = this.backCard;
        sc.FrontCard = this.frontCard;


        formatter.Serialize(stream, sc);

        var arry = ConvertToArry(stream);
        stream.Close();
        this.NeedSave = false;

        return arry;
    }

private  byte[] ConvertToArry(Stream input)
    {
        byte[] buffer = new byte[16 * 1024];
        using (MemoryStream ms = new MemoryStream())
        {
            int read;
            while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
            {
                ms.Write(buffer, 0, read);
            }
            return ms.ToArray();
        }
    }

Мой первый вопрос: всякий раз, когда я конвертирую любой объект потока в байтовый массив и пытаюсь получить размер массива, результат равен нулю ???Я не мог этого понять.Что-то не так с процессом сериализации?

Кто-нибудь может помочь?

...