我即将为 Microsoft.Threading.Tasks.Extensions 编写一个 shim 程序集,以便能够构建 Mono 项目(我在此处描述了这个问题),但有些事情我不确定。
1)程序集包含以下方法(一些具有多个重载):
- 从取消,
- HandleEapCompletion
- 读取异步
- 写异步
- 刷新异步
- 复制到异步
- CopyToAsyncInternal
- 读块异步
- 读线异步
- ReadToEndAsync
- 写线异步
- 获取响应异步
- GetRequestStreamAsync
如何找出我应该转发哪些类型以及实现哪些方法?那些应该转发的,我应该把它们重定向到哪里?在这种情况下,我怀疑我将不得不提供实现,因为它们在 Mono 程序集中不存在,但我怎么确定呢?
2)我需要实现或类型转发所有内容,还是只需要在我的代码中使用的东西?在后一种情况下,如果我跳过一些必需的类型或方法,我怎么知道?我注意到我没有收到缺少方法的编译器错误-它只抱怨缺少程序集,而没有提示它正在寻找什么方法。如果我留下未转发的类型或未实现的方法,我会从编译器那里得到任何提示吗?
更新。那里定义了两种类型:System.Threading.Tasks.TaskServices 和 AsyncExtensions。Android/Touch 项目都不知道它们。我只能转发程序集引用的类型,而这两个不是。这是否意味着我必须实施它们?