无法序列化类型为“Windows.UI.Xaml.Media.Imaging.BitmapImage”的成员“vehic

本文关键字:BitmapImage Imaging vehic 成员 Media UI 序列化 类型 Windows Xaml | 更新日期: 2023-09-27 17:57:10

当我将类型BitmapImage添加到我的Windows 8应用程序的类中时(如下所示),我得到:

Cannot serialize member vehicleImage' of type 'Windows.UI.Xaml.Media.Imaging.BitmapImage', see inner exception for more details.

内部异常详细信息:

 System.Runtime.InteropServices.WindowsRuntime.RuntimeClass is inaccessible due to its protection level. Only public types can be processed.

法典:

public BitmapImage vehicleImage
        {
            get
            {
                return m_vehicleImage;
            }
            set
            {
                Uri _baseUri = new Uri("ms-appx:///");
                BitmapImage imageBitmap = new BitmapImage(new Uri(_baseUri, ImagePath));
                m_vehicleImage = imageBitmap;
                OnPropertyChanged("vehicleImage");
            }
        }
        private async void SetImage()
        {
            var file = await Windows.Storage.KnownFolders.PicturesLibrary.GetFileAsync(ImagePath);
            var fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read);
            var img = new BitmapImage();
            img.SetSource(fileStream);
            vehicleImage = img;
        }

我正在将对象序列化为 XML。 当我删除这段代码时,一切正常。 我希望能够拥有用户从其计算机中选择的图像(这就是我尝试使用 BitmapImage 类型的原因)。

任何帮助,不胜感激。

无法序列化类型为“Windows.UI.Xaml.Media.Imaging.BitmapImage”的成员“vehic

使用 System.Xml.Serialization 命名空间访问这些属性的 [XMLIgnore()]。

你应该想要存储图像所在位置的字符串,对吗?然后序列化字符串,并 [XMLIgnore()] 对 BitMapImage

这允许在可以进行序列化时仍可访问位图图像。