Przeczytaj osadzony plik ze złożenia
Muszę przekazać ścieżkę pliku konfiguracyjnego do metody ramowej (Gurok SmartInspect). Plik konfiguracyjny jest osadzonym zasobem zespołu. Obecnie czytam plik z zespołu i przechowuję go na zewnątrz, a następnie przekazuję nazwę ścieżki. Czy istnieje lepszy / mniej skomplikowany sposób osiągnięcia tego celu bez kopiowania pliku?
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);
}
}
}