C #: чтение содержимого файла, который встроен в файл ресурса - PullRequest
2 голосов
/ 11 ноября 2010

Как мне прочитать текстовый файл , который встроен в файл resx с помощью класса ResourceManager ?

Что не так со следующим фрагментом?

ResourceManager resman = new ResourceManager("Mynamespace.RESXFileName", Assembly.GetExecutingAssembly());
Stream stream = resman2.GetStream("ResourceName");

поток всегда равен нулю!

Ответы [ 2 ]

7 голосов
/ 11 ноября 2010
        using (var resourceStream = Assembly.GetExecutingAssembly()
                    .GetManifestResourceStream(resourceName))
        {
            if (resourceStream != null)
            {
                using (var textStreamReader = new StreamReader(resourceStream))
                {
                    text = textStreamReader.ReadToEnd();
                }
            }
            else
            {
                throw (new MissingManifestResourceException(resourceName));
            }
        }

Имя ресурса определяется пространством имен и именем файла.Скажем, файл MyTxt.txt существует в корне проекта, который имеет пространство имен по умолчанию MyNs, тогда имя ресурса будет: MyNs.MyTxt.txt

РЕДАКТИРОВАТЬ

Я должен научиться читать вопрос,Я не проверял, но это должно дать вам то, что вы хотите:

    static object GetResxObject(string resxPathName, string resourceKey)
    {
        using (var resxReader = new ResXResourceReader(resxPathName))
        {
            return resxReader
                .Cast<DictionaryEntry>()
                .Single(d => string.Equals(d.Key,
                                           resourceKey))
                .Value;
        }
    }

    ...
    var myString=(string)GetResxObject(@"path\to\resx.resx","myStringKey");
1 голос
/ 11 ноября 2010
<ResourceNamespace>.ResourceManager.GetString(<textresourcename>);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...