none
WPF客户端调用WCF时,能否统一拦截所有方法来做进度展示? RRS feed

  • 问题

  • 在WPF客户端中,我每次调用WCF服务都是这样调用的:

    // 全局的IMyWcfClient
    private IMyWcfClient _service = new MyWcfClient();
    // 某个方法中
    try
    {
            // 显示进度条
            BusyIndicator.IsOpen = true;
    
            var data = await _service.GetDataAsync();
    }
    finally
    {
            // 关闭进度条
            BusyIndicator.IsOpen = false;
    }

    我想能不能这样:

    // 全局的IMyWcfClient
    private IMyWcfClient _service = new MyWcfClient();
    // 在页面的Loaded事件里注册事件处理
    _service.BeforeOperation += (s, e) => {BusyIndicator.IsOpen = true;}
    _service.AfterOperation += (s, e) => {BusyIndicator.IsOpen = false;}
    // 某个方法中
    var data = await _service.GetDataAsync();


    我该怎么实现??或者说,还有其他更好的实现??



    2019年4月23日 8:39

全部回复