设为首页 收藏本站
查看: 2144|回复: 0

Windows phone 7 移植到 Windows phone 8 之(AsyncCtpLibrary_Phone 的错误与异常)

[复制链接]

尚未签到

发表于 2015-5-10 08:30:54 | 显示全部楼层 |阅读模式
  
  1.先说下背景。
  之前研究了下Async-CTP-v3 异步编程的方式。发现可以使程序从逻辑上清晰无比,然后就在vs2010安装了Async-CTP-v3。
  并在工作的项目中重写了http访问层,主要用到了Task,async,await等关键字和像GetRequestStreamAsync()这种类型的扩展方法。
  
  2.主要的内容。
  下面先说下wp8 SDK的迁移从以前的wp7项目
  用vs2012打开vs2010的vs项目会弹出一个htm迁移报告,就是这个。有警告的2个项目都不是重要的,让我很欣慰。
DSC0000.png
  然后接下来我编译了一遍项目。说找不到关键字。
DSC0001.png
  由于可能这还是7.1的项目吧。我将项目都升级到wp8.0.升级到wp8.0的方法就是在解决方案管理器里面,右键每一个项目,点击升级到
  windows phone 8.0,在升级的时候,有的项目会短暂无反应。一会就好了。然后编译,就发现了主要问题。
  主要说是一个System.Threading.Tasks.Task这个类在AsyncCtpLibrary_Phone.dll和mscorlib.dll中同时存在。
DSC0002.png
  然后我想那就把之前的AsyncCtpLibrary这个从引用中移除。~~.然后就发现之前在AsyncCtpLibrary这个里面的一些扩展方法都不见了。也就是说新的sdk
  包含了支持了await,async,但AsyncCtpLibrary_Phone.dll这个dll中的扩展方法是没有给的。这真心坑呀。我重写引回去,扩展方法是有了,但是2个程序集
  中都有Task这个类。编译就会报错。。。。。。。。。。。
  
  3.现在的解决方案。
  我用.net reflector反编了AsyncCtpLibrary_Phone这个dll。看到了里面有2个扩展方法的类。还有一些命名空间。
DSC0003.png
  找到了我想要的GetRequestStreamAsync()方法。然后就在项目里面自己写了这个扩展方法。当然这里的扩展方法很多。别的扩展方法与这个就类似了。



    public static class AsyncCtpLibrary
{
public static Task GetRequestStreamAsync(this WebRequest source)
{
return Task.Factory.FromAsync(new Func(source.BeginGetRequestStream), new Func(source.EndGetRequestStream), null);
}
}
  还有就是TaskEx.WhenAll这个静态方法也没有 了,编译不过。但我发现Task.WaitAll和之前的这个方法是一样的。然后就不用自己写了。
  把之前的TaskEx都换成Task就可以了。这之后程序算可以编译过了,有几个警告。跑了一下,网络获取是没有问题的。代码上算是成功了。
  程序跑起来,试了下3种分辨下的界面,发现还有有一些界面需要适配的。基本都是因为ListBox的高度是固定的,不是动态的原因。
  更多问题以后发现了在写出来分享给大家。。。O(∩_∩)O~

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-65377-1-1.html 上篇帖子: Windows Phone 7 第二次更新细节将于二月 MWC 2011 上宣布 下篇帖子: WebRTC的 windows 7 环境搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表