我即将为Microsoft.Threading.Tasks.Extensions编写一个shim程序集,以便能够构建Mono项目(我描述了问题here),但有些事情我不确定。< / p>
1)程序集包含以下方法(一些具有多个重载):
如何找出我应该转发哪些类型以及实施哪些方法?那些应该转发的,我应该在哪里重定向它们?在这种情况下,我怀疑我必须提供实现,因为它们在Mono程序集中不存在,但我怎么知道呢?
2)我是否需要实现或者转发所有内容,或者只需要在我的代码中使用的内容?在后一种情况下,如果我跳过一些必需的类型或方法,我怎么知道呢?我注意到我没有为丢失的方法收到编译器错误 - 它只是抱怨缺少程序集而没有提示它正在寻找什么方法。如果我留下未转发的类型或没有实现的方法,我会从编译器得到任何提示吗?
更新即可。这里定义了两种类型:System.Threading.Tasks.TaskServices和AsyncExtensions。 Android / Touch项目都不知道它们。我只能转发程序集引用的类型,而这两种类型不是。这是否意味着我必须实施它们?
答案 0 :(得分:2)
你不应该真的是类型转发方法 - 而应该是类型转发类型。
我的建议 - 基于我对System.Windows和System.Net所做的 - 是从类型转发参考程序集中的所有类型开始。
执行此操作后 - 构建时 - 您可能会发现一些不会前进的内容。对于那些你可以:
Missing
异常而失败。NotImplementedException
我相信Async
代码的新Mono3实现非常完整 - 所以我认为你不应该遇到太多问题。