Как загрузить все ресурсы из сборки silverlight? - PullRequest
1 голос
/ 08 апреля 2011

У меня есть сборка silverlight, в которой есть несколько файлов xml. Все эти файлы встроены в ресурсы. Я тоже не знаю имен файлов. Мне нужно загрузить все файлы и построить в памяти словарь с данными. Я знаю, как загрузить XML-файл, если я знаю имена файлов. как показано ниже

this.filePath = string.Format(@"/{0};component/internal/{1}", assemblyName, "TaxRules.xml");
StreamResourceInfo streamResourceInfo = Application.GetResourceStream(new Uri(filePath, UriKind.Relative));
        Stream stream = streamResourceInfo.Stream;
        //check for performance
        XmlReader reader = XmlReader.Create(stream);

Я не знаю, как загрузить все XML-файлы, не зная имен файлов .. Любая помощь по этому вопросу очень приветствуется

1 Ответ

0 голосов
/ 08 апреля 2011

Если действие по сборке XML-файла является встроенным ресурсом, и вы находитесь в сборке, вы можете получить его из сборки

, например,

Assembly asm = Assembly.GetExecutingAssembly();

var names = (from n in asm.GetManifestResourceNames()
                         where n.EndsWith(".xml")
                         select n
                         ).ToList();

, тогда, когда вы захотитеиспользуемый вами поток GetManifestResourceStream

например

   Dictionary<string, System.IO.Stream> resources = new Dictionary<string,System.IO.Stream>();
   foreach (string name in names)
   {
          resources.Add(name, asm.GetManifestResourceStream(name));

   }

Примечание: протестировано с VS 2010 SilverLight Toolkit 4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...