无法序列化'Windows.UI.Xaml.Media.Imaging.BitmapImage'类型的成员'vehicleImage'

时间:2013-02-01 03:33:27

标签: c# xaml windows-8

当我为我的 Windows 8应用程序(下面)添加类型BitmapImage到我的类时,我得到:

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类型的原因)。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

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

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

这样可以在序列化时仍然可以访问BitMap图像。