Wie über die Dokumentation unten wies darauf hin, verwiesen, der Code, den Sie haben, ist für einen PCL/.NET Standard-Projekt. Wenn Sie einen gemeinsamen Typ Typ verwenden, dann müssen Sie den Gerätetyp über ein Präfix, z. B. Mapper.IOS, Mapper.Droid, usw.
Ich habe beide Szenarien getestet und sie funktionieren mit dem gleichen Code Sie Haben Sie in Ihrer Frage, aber die Präfixe für IOS, Droid, etc. in den freigegebenen Projekttyp.
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();
}
}
Referenz Xamarin.Forms : Loading Files Embedded as Resources in Shared Projects
Gefunden dies in der Dokumentation speziell über eingebettete Ressourcen in gemeinsamen Projekten https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/files/#Embedding_in_Shared_Projects – Nkosi