根据官方文档,异步回调应该有 2 个接口,其中一个可以从另一个生成。更不用说,以这种方式遵循调用层次结构非常困难。难道没有一种 DRY 方式来定义这样的接口吗?
要将 AsyncCallback 参数添加到我们所有的服务方法,您必须定义一个新接口,如下所示:
- 它必须与服务接口同名,并附加 Async(例如,StockPriceServiceAsync)。
- 它必须与服务接口位于同一个包中。
- 每个方法必须具有与服务接口中相同的名称和签名,但有一个重要区别:该方法没有返回类型,最后一个参数是 AsyncCallback 对象。