Динамическая загрузка Dll из ресурсов и ее использование - C#
Формулировка задачи:
Пытаюсь разобраться для себя , прошу помощи сделал как в статье https://habrahabr.ru/post/85480/
для теста скачал dotnetzip (Ionic.Zip.dll) добавил ее в ресурсы запаковывать не стал
пример использования
Вот как обратиться к этой DLL и использовать методы из нее?
using Ionic.Zip;
using (ZipFile zip = ZipFile.Read(ExistingZipFile))
{
ZipEntry e = zip["MyReport.doc"];
e.Extract(OutputStream);
}private static Assembly AppDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
// Загрузка сборки из ресурсов.
using (var resource = new MemoryStream(Resources.Ionic_Zip))
using (var reader = new BinaryReader(resource))
{
int bufLength = Convert.ToInt32(resource.Length);
var buffer = reader.ReadBytes(bufLength);
return Assembly.Load(buffer);
}private void Form1_Load(object sender, EventArgs e)
{
AppDomain.CurrentDomain.AssemblyResolve += AppDomain_AssemblyResolve;
}Решение задачи: «Динамическая загрузка Dll из ресурсов и ее использование»
textual
Листинг программы
string text;
using (ZipFile zip = ZipFile.Read("base.zip", options))
{
ZipEntry ee = zip["base.csv"];
using(var OutputStream = new MemoryStream())
{
ee.Extract(OutputStream);
OutputStream.Position = 0;
using (var reader = new StreamReader(OutputStream))
{
text = reader.ReadToEnd();
}
}
}
MessageBox.Show(text);