#c# #.net-4.0 #uri
#c# #.net-4.0 #uri
Вопрос:
У меня есть файл «sample.xml «в моем проекте, заданном как содержимое.
Я запускаю этот код:
Uri uri = new Uri("/sample.xml", UriKind.Relative);
StreamResourceInfo contentStream = Application.GetContentStream(uri);
Почему он возвращает null ContentStream?
Ответ №1:
Вы должны установить файл Build Action
в качестве содержимого, а Copy To Output Directory
в Copy Always
или Copy if newer
.
Комментарии:
1. То, что вы говорите, требуется, если файл должен храниться вне сборки и к нему следует обращаться с помощью обычных методов ввода-вывода. Вопрос касается ресурсов, встроенных в сборку.
2. Вы смешиваете файлы ресурсов с файлами содержимого. Файлы содержимого — это автономные файлы, которые имеют явную связь с приложением, а файлы ресурсов встроены в сборку. Вы не можете получить файл ресурсов с помощью «Application. GetContentStream». Вы должны использовать «Приложение. GetResourceStream» для встроенных файлов ресурсов.
Ответ №2:
Вероятно, это означает, что файл не найден. Правильный ли путь?.
Возвращаемое значение
Тип: System.Windows.Ресурсы.StreamResourceInfo
StreamResourceInfo, который содержит файл данных содержимого, расположенный по указанному Uri. Если свободный ресурс не найден, возвращается null.
Комментарии:
1. Путь указан правильно. Но я перепробовал все варианты и все тот же.
2. @husayt это может показаться очевидным, но вы уверены, что хотите загрузить
.xml
файл вместо.xaml
?3. @husayt взгляните на этот пост: social.msdn.microsoft.com/forums/en-us/wpf/thread /… (последний комментарий). Измените расширение xml на что-нибудь другое и повторите попытку.