首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在c#属性getter中获取异步服务调用结果

如何在c#属性getter中获取异步服务调用结果
EN

Stack Overflow用户
提问于 2017-02-12 16:21:25
回答 1查看 277关注 0票数 0

如何在getter属性中获取异步调用结果?我的代码示例是:

代码语言:javascript
复制
public  override  byte[] AddressBasedDocFile
        {
            get
            {   BaseInfoImplementationClient.AlfrescoServiceProxy.AlfrescoServicesProxyClient client = new BaseInfoImplementationClient.AlfrescoServiceProxy.AlfrescoServicesProxyClient();
                client.GetDataCompleted+=client_GetDataCompleted;
                client.GetDataAsync(this.ObjectId)  ;                       
            }
            set
            {
                base.AddressBasedDocFile = value;
            }
        }

        void client_GetDataCompleted(object sender, BaseInfoImplementationClient.AlfrescoServiceProxy.GetDataCompletedEventArgs e)
        {   
            e.Result
        }

有一个使用任务来完成工作的解决方案here,但据我所知,我不能更改client.GetDataAsync(this.ObjectId)以使其返回值,它实际上是一个异步服务调用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-12 17:09:35

属性不能声明为异步。

我建议您应该重新考虑将getter更改为异步函数。

代码语言:javascript
复制
public async Task<bytes[]> GetAddressBasedDocFileAsync()
{
   ....
}

Getter的执行速度应该很快,不应该抛出异常。在getter中执行远程网络调用会破坏这两个最佳实践。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42185554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档