2016-10-12 3 views
0

Я пытаюсь получить файл, который добавляется в проекте PCL USIN PCLStorgae, как показано ниже:Получение файла внутри проекта PCL всегда возвращаются нуль

IFile file = await PCLStorage.FileSystem.Current.GetFileFromPathAsync("ProjectName.Data.AuthRequest.json"); 

Выше всегда возвращается нуль. BuildAction установлен в Embedded Resource. Можно получить файл внутри PCL, но что я делаю неправильно здесь.

Update

После кода работает нормально, без использования PCLStorage:

var assem = typeof(Class).GetTypeInfo().Assembly; 

Stream stream = assem.GetManifestResourceStream(string.Format("ProjectName.CustomFolder.FileName")); 

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

Не знаю, почему его возвращение нуль с PCLStorage.

+1

Я считаю, что Джеймс ответил на ваш вопрос на форуме здесь: http://forums.xamarin.com/discussion/80313/unable-to-load-file-using-pcl-storage-in-pcl-project –

ответ

1

PCLStorage - это абстракция по поводу различий в файловой системе различных платформ (iOS, Android, Windows и т. Д.).

Возможно, вы обнаружили, что имя библиотеки вводит в заблуждение? «PCL» в «PCLStorage» означает, что он позволяет вам обращаться к конкретным файловым системам платформы из вашего общего кода (PCL). Это не о доступе к файлам, встроенным в PCL в качестве ресурса.

Как вы уже правильно поняли, GetManifestResourceStream() - это правильный путь для встроенных ресурсов.

Смежные вопросы