我正在尝试在我的 WP7 应用程序中直接从独立存储实现文件上传。我基于这个优秀的例子http://gregdoesit.com/2009/10/file-upload-in-silverlight-a-simple-solution/
我用来开始 UploadChunk() 调用链的代码是:
public void uploadPackage(String packagePath)
{
string[] pathSplit = packagePath.Split('\\');
_fileName = pathSplit[1];
IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication();
IsolatedStorageFileStream packageFile = isf.OpenFile(packagePath, System.IO.FileMode.Open, FileAccess.Read);
_bytesUploaded = 0;
_bytesTotal = packageFile.Length;
_data = packageFile;
try
{
UploadFileChunk();
}
catch (Exception ex)
{
}
}
在 wc_OpenWriteCompleted 事件发生之前,一切似乎都运行良好。它是这样实现的:
if (e.Error == null)
{
object[] objArr = e.UserState as object[];
byte[] fileContent = objArr[0] as byte[]; // NullReferenceException
int bytesRead = Convert.ToInt32(objArr[1]);
Stream outputStream = e.Result;
outputStream.Write(fileContent, 0, bytesRead);
outputStream.Close();
}
第 3 行中的 objArr 无法分配,而 e.UserState 具有非空值。这会导致第 4 行中的 NullReferenceException,objArr 为空。
什么可能导致问题?我真的坚持这个,我真的很感激你的帮助。