如何在Xamarin中实现渐进式图像上传

如何在Xamarin中实现渐进式图像上传,xamarin,xamarin.forms,Xamarin,Xamarin.forms,我有一个Xamarin表单应用程序,其中图像被上传到服务器。我想在UI上显示进度条。我正试图用引用创建它。我创建了类ProgressableStreamContent: 公共类ProgressableStreamContent:HttpContent { public ProgressableStreamContent(HttpContent内容、操作进度) {...} 受保护的重写任务SerializeToStreamAsync(流、TransportContext上下文) {...} }

我有一个Xamarin表单应用程序,其中图像被上传到服务器。我想在UI上显示进度条。我正试图用引用创建它。我创建了类ProgressableStreamContent:

公共类ProgressableStreamContent:HttpContent
{
public ProgressableStreamContent(HttpContent内容、操作进度)
{...}
受保护的重写任务SerializeToStreamAsync(流、TransportContext上下文)
{...}
}
问题在于SerializeToStreamAsync过程的参数中,其中TransportContext未被识别为类。错误消息是:“找不到类型或命名空间名称‘TransportContext’(是否缺少using指令或程序集引用)?”。当我导航到HttpContent时,有:

公共抽象类HttpContent:IDisposable
{
...
受保护的抽象任务SerializeToStreamAsync(Stream,Net.TransportContext上下文);
}

因此,它不是writen TransportContext,而是Net.TransportContext。这是否意味着它是内部的?如何在代码中使用此类?我尝试放置System.Net.TransportContext,但未成功。

我尚未安装Microsoft.Net.Http Nuget软件包。现在它正在正确编译。如何删除该问题?

因为它不是内部的,而且在可移植类库中也可用。它包含在
系统
组件中。添加完整名称空间(如
System.Net.TransportContext
)时是否收到相同的错误消息?您设置的目标框架(概要文件)是什么?我不会删除这个问题。其他用户将来可能会得到帮助。我仍然觉得奇怪的是,只要我使用了正确的目标框架(例如78或111),我就不必安装这个NuGet包来让它工作。我不知道我使用的是哪个目标框架。如何检查?在Xamarin Studio上:转到您的项目选项,在
General
选项卡下,您可以在
Target Framework
下找到它。在Visual Studio上(由于我现在在Mac上,所以无法检查):转到项目选项,可能在
常规
选项卡下,您可以找到
目标框架
。在VS上,它可能不会显示配置文件编号。我只在VS中发现目标是.NET Framework 4.5。您正在将此代码添加到PCL项目中,对吗?还是将其放置在共享项目或平台项目中?这就解释了为什么你需要一个NuGet包来让它工作。