Читать встроенный файл из сборки - PullRequest
1 голос
/ 07 января 2010

Я должен передать путь файла конфигурации методу фреймворка (Gurok SmartInspect). Файл конфигурации является встроенным ресурсом сборки. В настоящее время я читаю файл из сборки и сохраняю его снаружи, а затем передаю pathName. Есть ли лучший / менее сложный способ достижения этой цели без копирования файла?

    private static void ConfigLogger()
    {
        const string embeddedFileName = "xxx.SmartInspect.properties";
        const string configFileName = "SmartInspect.properties";
        ExtractFileFromAssembly(embeddedFileName, configFileName);
        SiAuto.Si.LoadConfiguration(configFileName);
    }

    private static void ExtractFileFromAssembly(string assemblyFileName, string configFileName)
    {
        using (Stream s = Assembly.GetExecutingAssembly().GetManifestResourceStream(assemblyFileName) )
        {
            byte[] buffer = new byte[s.Length];
            int read = s.Read(buffer, 0, (int)s.Length);
            using (FileStream fs = new FileStream(configFileName, FileMode.Create))
            {
                fs.Write(buffer, 0, buffer.Length);
            }
        }
    }

1 Ответ

1 голос
/ 07 января 2010

Если единственный способ, которым Gurok SmartInspect считывает информацию о конфигурации, это файл, к которому вы передаете путь, и вы решили встроить этот файл в свою сборку, тогда да, ваш метод в порядке. Возможно, вы захотите добавить некоторую обработку исключений, но в противном случае я не вижу проблем с этим.

...