Xamarin.forms Xamarin表单:Epubreader:System.AggregateException:';发生了一个或多个错误

Xamarin.forms Xamarin表单:Epubreader:System.AggregateException:';发生了一个或多个错误,xamarin.forms,epub,Xamarin.forms,Epub,我正在使用(vers one)NuGet包解析.epub文件 我的代码: string fileName = "SampleEPUB.epub"; var assembly = typeof(MainPage).GetTypeInfo().Assembly; Stream stream = assembly.GetManifestResourceStream($"{assembly.GetName().Name}.{fileName}"); EpubBoo

我正在使用(vers one)NuGet包解析.epub文件

我的代码:

string fileName = "SampleEPUB.epub";
var assembly = typeof(MainPage).GetTypeInfo().Assembly;
Stream stream = assembly.GetManifestResourceStream($"{assembly.GetName().Name}.{fileName}");
EpubBook epubBook = EpubReader.ReadBook(stream);
foreach (EpubNavigationItem chapter in epubBook.Navigation)
{
    chapterDetails.Add(new ChapterDetails() { title = chapter.Title, htmlData = chapter.HtmlContentFile?.Content, subChapters = chapter.NestedItems });
}
出于测试目的,我在项目中添加了epub文件,并对上面的章节进行了解析。我需要改变这个实现

我能够获得存储在数据库中的epub文件链接。现在我需要从链接中解析epub的章节。但是当我在上面的代码中将链接用作
文件名
时,我得到了以下例外情况:

System.AggregateException:'发生了一个或多个错误。(值不能为null。参数名称:流)'

我如何解决这个问题?一个示例链接是。我添加了一个示例项目,其中包含.epub文件链接供参考(示例中对epub文件链接进行了注释)

System.AggregateException:'发生了一个或多个错误。(值不能为null。参数名称:流)'

GetManifestResourceStream
方法用于访问嵌入的文件,该文件应放置在Xamarin.Forms项目的共享项目中。该代码不适用于来自数据库的文件。由于项目中不存在文件名,您可以进行调试以确保流为null

Stream stream = assembly.GetManifestResourceStream($"{assembly.GetName().Name}.{fileName}");
在您的情况下,它只需要从url获取流。尝试使用以下代码获取流

Stream stream;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)aRequest.GetResponse();

stream = response.GetResponseStream();

很明显,
GetManifestResourceStream
返回空值