Как правильно управлять привязкой данных и сериализацией/десериализацией BitmapImage?C#

Место общения программистов C#
Ответить
Anonymous
 Как правильно управлять привязкой данных и сериализацией/десериализацией BitmapImage?

Сообщение Anonymous »

Это мой основной код:

Код: Выделить всё

public class MyObject
{
public decimal MyDeciaml { get; set; }
public string? MyImageBase64
{
get
{
if (MyImageBase64 != null)
{
byte[] imageBytes = Convert.FromBase64String(MyImageBase64);
using (MemoryStream stream = new MemoryStream(imageBytes))
{
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.CacheOption = BitmapCacheOption.OnLoad;
bitmapImage.StreamSource = stream;
bitmapImage.EndInit();
bitmapImage.Freeze();
MyImageBitmap = bitmapImage;
}
}

return MyImageBase64;
}
set { }
}
[JsonIgnore]
public BitmapImage? MyImageBitmap { get; set; }
}
который я связываю с помощью класса ViewModelData и ObservableCollection myObjects = new ObservableCollection(); против ListBox: Кажется, при привязке работает хорошо. Теперь, когда я сериализую его в json, используя JsonConvert.SerializeObject(data) Newtonsoft.Json, я вижу это в json:

Код: Выделить всё

"MyImageBitmap": "System.Windows.Media.Imaging.BitmapImage"
Как его удалить? Кажется, [JsonIgnore] не имеет никакого эффекта?
Я хочу удалить и просто сохранить MyImageBase64 (при десериализации преобразовать его в BitmapImage и вернуть изображение).
Спасибо за любые советы по этому поводу. Может быть, лучший способ — напрямую связать строку base64 и выполнить преобразование в BitmapImage в ListBox, если это возможно?

Подробнее здесь: https://stackoverflow.com/questions/783 ... of-a-bitma
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»