Рейтинг:
1
OriginalGriff
Да, это возможно:
string GetResourceFile(string assemblyPath, string nameSpace, string fileName)
{
Assembly assembly = Assembly.LoadFrom(assemblyPath);
string resourceName = nameSpace + "." + fileName;
string resource = null;
using (Stream stream = assembly.GetManifestResourceStream(resourceName))
{
using (StreamReader reader = new StreamReader(stream))
{
resource = reader.ReadToEnd();
}
}
return resource;
}
Например, если в сборке есть папка "ресурсы", содержащий папку "текстовые файлы", содержащие внедренный текстовый файл ресурсов "RevisionHistory.txt":
GetResourceFile(@"D:\Testing\MyAssembly.dll", "MyAssembly.Resources.TextFiles", "RevisionHistory.txt");
W∴ Balboos, GHB
Ух ты, где ты всему этому научился?
OriginalGriff
Я встраиваю а "ToDo.txt" и "RevisionHistory.txt" файл в каждой из моих сборок, чтобы я мог ссылаться на файл истории в форме "о программе" и обновлять ToDo извне VS.
Это позволяет мне включать "подистории" для сборок компонентов.
oxzy's Modz uk
есть ли шанс увидеть открытый исходный код, чтобы я мог увидеть, как он работает ?
OriginalGriff
:смеяться:
У вас есть открытый исходный код! Все это есть в тексте решения. Все остальное - это код .NET framework, который вы можете просмотреть через справочные источники.
oxzy's Modz uk
проблема , с которой я сталкиваюсь, заключается в том, где его разместить: внутри основного класса exe или внутри библиотеки dll.
OriginalGriff
Где бы это ни было, вы хотите прочитать информацию из другой сборки.
Получение его из одной и той же сборки тривиально и не требует никакого "реального" кода:
строка allTheText = свойства.Ресурсы.RevisionHistory;