我的方法是不在异步操作中使用静态方法和类 - 除非实现一些锁定技术来防止竞争条件.
现在async/await已经引入到c#4.5+框架中 - 这简化了多线程应用程序并鼓励响应式UI.
但是 - 因为锁不能/不应该放在等待方法上(我不是在辩论)现在是否会使静态方法利用async/await完全冗余?
使用MVVMCross在IOS Droid中编写我的登录页面.
这就是我到目前为止所拥有的
var bindingSet = this.CreateBindingSet<LoginPageView, LoginPageViewModel>();
bindingSet.Bind(this.UsernameTextField).To(x => x.UserName).TwoWay();
bindingSet.Bind(this.UsernameTextField).For(x=>x.Enabled).To(x => !x.LoggingIn);
bindingSet.Apply();
Run Code Online (Sandbox Code Playgroud)
'UserName'的绑定成功绑定到UsernameTextField.但是,当LoginCommand被触发时(为简洁起见排除),我不想在登录例程正在进行时将UI控件设置为'Enabled = false'.
上面的代码在x.Enabled绑定的运行时失败
System.ArgumentException: Property expression must be of the form 'x => x.SomeProperty.SomeOtherProperty'
Run Code Online (Sandbox Code Playgroud)
我必须正确地编写绑定,因为我希望直接绑定到'Enabled'属性,而不是子prop - 但我不能完全看到如何执行此操作.
我查看了mvvmcross上的一些示例,并查看了几个N + 1视频,但我似乎无法找到启用的示例匹配或其他子属性绑定.
谢谢
上下文:当前使用带有Odata的WCF数据服务5.0用于Windows 8应用程序.
我一直试图压缩来自我今天服务线的OData,并遇到大量围绕支持的问题.
不支持二进制序列化.
不支持json(Content-Type标头当前不支持库throws'application/json')
json lite尚未发布
在http响应中添加gzip请求工作(服务器返回压缩) - 但客户端lib似乎不想反序列化它.(xml解析异常)
我今天的最后一次尝试是尝试获取http响应,并自己手动反序列化流(GZipStream不可用,但我知道有第三方替代品) - 但我找不到任何Microsoft.Data. Services.Client.WindowsStore事件/覆盖会将流公开给我.
我想实现OData以利用比标准WCF Web服务更高的性能和效率 - 但是没有办法通过线路压缩流我没有得到任何.
有没有人有这方面的经验,或者如何处理的建议?