Xamarin.ios 如何正确实现类型转发?
我将为Microsoft.Threading.Tasks.Extensions编写一个垫片程序集,以便能够构建Mono项目(我描述了这个问题),但有几件事我不确定 1) 程序集包含以下方法(某些方法具有多个重载):Xamarin.ios 如何正确实现类型转发?,xamarin.ios,xamarin.android,portable-class-library,Xamarin.ios,Xamarin.android,Portable Class Library,我将为Microsoft.Threading.Tasks.Extensions编写一个垫片程序集,以便能够构建Mono项目(我描述了这个问题),但有几件事我不确定 1) 程序集包含以下方法(某些方法具有多个重载): 从取消开始 手工完成 可读异步 写同步 FlushAsync 复制同步 CopyToAsyncInternal ReadBlockAsync ReadLineAsync ReadToEndAsync 写同步 GetResponseAsync GetRequestStreamAsyn
- 从取消开始
- 手工完成
- 可读异步
- 写同步
- FlushAsync
- 复制同步
- CopyToAsyncInternal
- ReadBlockAsync
- ReadLineAsync
- ReadToEndAsync
- 写同步
- GetResponseAsync
- GetRequestStreamAsync
更新。这里定义了两种类型:System.Threading.Tasks.TaskServices和AsyncExtensions。Android/Touch项目都不知道它们。我只能转发程序集引用的类型,而这两个类型不是。这是否意味着我必须实现它们?您不应该真正使用类型转发方法,而应该使用类型转发类型 基于我对System.Windows和System.Net所做的工作,我的建议是从转发引用程序集中的所有类型开始 这样做之后——当您构建时——您可能会发现一些无法向前键入的内容。对于那些您可以:
- 只是错过了它们——在这种情况下,一些代码将在运行时失败,并出现某种类型的
异常Missing
- 实现存根版本-具有
NotImplementedException
- 实现替换版本(尽管我会避免这样做-最好与Mono的人谈谈并尝试修补Mono的实现)
我相信
Async
代码的新Mono3实现是非常完整的,所以我认为您不应该遇到太多问题。很抱歉造成混淆。我的意思是转发类型和实现方法,但写了其他东西:-),所以我猜是Mono.Android和monotouch程序集,我应该转发缺少的类型。我会试试看。非常感谢!嗯,请看我的更新。其中只有两种类型,但引用的程序集中不存在任何类型。既然我只能转发已知(引用的)类型,我该怎么做呢?定义假类型?这些方法(扩展方法?)是在mono的其他类型中实现的吗?如果是,您可以编写垫片来转发它们(在堆栈上再调用一次)——我希望这意味着您可以避免从头开始编写方法。另一个要查看的资源是skeet先生-我想他写了很多TPL堆栈“为了好玩”,“这些方法(扩展方法?)是用mono中的其他类型实现的吗?”-我知道不是,但我需要搜索。基本上,整个Mono堆栈对我来说都是新的,所以这些天我做了很多发现,转发不存在的类型的挑战增加了更多的乐趣。