小强孩 发表于 2013-1-4 01:15:57

Windowphone访问网络图片-本地缓存-封装CacheNetworkFile.dll的学习

<div id="cnblogs_post_body">这篇博文是我根据一个缓存网络图片的demo的学习总结。
在这个例子中调用的是CacheNetworkFile.dll中的CacheNetworkImageConvert来进行缓存网络图片的。这个CacheNetworkFile.dll里面到底是什么东东呢?
经过神器Reflector的分析原来如此呀

类CacheNetworkImageConvert实现了IvalueConverter接口
<div class="cnblogs_code" >http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifView Code <div id="cnblogs_code_open_632403e8-e6c6-44d8-9ac4-b976fa08036a" class="cnblogs_code_hide">public class CacheNetworkImageConvert : IValueConverter{    // Methods    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)    {      Uri uri;      BitmapImage2 image;      if (value != null)      {            uri = null;            if (value is string)            {                uri = new Uri((string) value);                goto Label_0030;            }            if (value is Uri)            {                uri = (Uri) value;                goto Label_0030;            }      }      return null;    Label_0030:      image = new BitmapImage2();      CacheNetworkdFile.AddBind(uri, image, BitmapImage2.Source);//调用CacheNetWorkFile的Addbind方法来保存File      return image;    }    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)    {      throw new NotImplementedException();    }    // Nested Types    private class BitmapImage2 : BitmapSource    {      // Fields      public static DependencyProperty Source = DependencyProperty.Register("Source", typeof(Stream), typeof(CacheNetworkImageConvert.BitmapImage2), new PropertyMetadata(null, new PropertyChangedCallback(null, (IntPtr) SourceChanged)));      // Methods      private static void SourceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)      {            ((CacheNetworkImageConvert.BitmapImage2) d).SetSource((Stream) e.get_NewValue());            ((Stream) e.get_NewValue()).Dispose();      }    }}
页: [1]
查看完整版本: Windowphone访问网络图片-本地缓存-封装CacheNetworkFile.dll的学习