gpt4 book ai didi

c# - Xamarin Forms 从文本文件中读取结果为空

转载 作者:太空狗 更新时间:2023-10-30 00:48:18 25 4
gpt4 key购买 nike

我的项目文件资源管理器中有 data.txt 文件。我想从这个文本文件中读取数据,但每次尝试时,结果都是空的,程序崩溃了。我写的代码是:

public MapPage()
{
var assembly = typeof(MapPage).GetTypeInfo().Assembly;
Stream stream = assembly.GetManifestResourceStream("Mapper.data.txt");

string text = "";
using (var reader = new System.IO.StreamReader(stream))
{
text = reader.ReadToEnd();
}
}

使用此代码块,流始终为空。这是项目文件资源管理器:

Project file explorer

我从其属性中选择文本文件作为嵌入式资源。

Embedded Resource

最佳答案

正如下面引用的文档所指出的,您拥有的代码适用于 PCL/.NET Standard 项目。如果您使用的是 Shared Project 类型,那么您必须通过前缀来定位设备类型,即 Mapper.IOS、Mapper.Droid 等。

我已经测试了这两种情况,它们确实可以使用您在问题中使用的相同代码,但在共享项目类型中使用 IOS、Droid 等前缀。

public MainPage()
{
#if __IOS__
var resourcePrefix = "Mapper.iOS";
#endif
#if __ANDROID__
var resourcePrefix = "Mapper.Droid";
#endif
#if WINDOWS_PHONE
var resourcePrefix = "Mapper.WinPhone";
#endif

var assembly = typeof(MainPage).GetTypeInfo().Assembly;
Stream stream = assembly.GetManifestResourceStream($"{resourcePrefix}.data.txt");
string text = "";

using (var reader = new System.IO.StreamReader(stream))
{
text = reader.ReadToEnd();
}
}

引用 Xamarin.Forms : Loading Files Embedded as Resources in Shared Projects

关于c# - Xamarin Forms 从文本文件中读取结果为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48043058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com