Какой рейтинг вас больше интересует?
|
Главная / Главные темы / Тэг «решение»
Как создать сборку в памяти и использовать ее классы отражением (reflection) на C# ? 2013-04-27 00:07:00
+ развернуть текст сохранённая копия
Продолжаю тему загрузки плагинов из БД, начатую в предыдущих моих постах. Недавно на работе пришлось написать небольшой движок запускающий плагины на C#. Плагины хранились в виде classlib сборки (DLL). Они хранились в поле varchar(max) в таблице MS SQL Server. Соответственно после загрузки данных в массив байтов нужно было создать сборку в памяти, потом создать класс из нее и вызвать его метод. Код делающий это тут:
// создаем сборку в памяти по массиву байтов
Assembly newAssembly = Assembly.Load(dataInBytes);
// создаем тип объекта и описание вызываемого метода из недр загруженной сборки
Type transfererType = newAssembly.GetType("MultiDBMappingTransferer.Engine.Transferer");
MethodInfo transferMethod = transfererType.GetMethod("Transfer");
EventInfo transferEvent = transfererType.GetEvent("PrintProgressMessageHandler");
PropertyInfo printProgressMessageHandlerProperty = transfererType.GetProperty("PrintProgressMessageHandler");
// конструируем нужный нам объект
Object Transferer = Activator.CreateInstance(transfererType);
// вызываем метод .Transfer(configString, transfDirectionFlag, lastTransferDate);
Object[] handlerArgs = { configString, true, DateTime.Now };
transferMethod.Invoke(Transferer, handlerArgs);
Тэги: (решение), сделать
Как загрузить сырые (Raw) данные из БД в Byte[] на C# используя ADO.NET ? 2013-04-26 23:50:00
+ развернуть текст сохранённая копия
Продолжаю тему загрузки плагинов из БД, начатую в предыдущем моем посте. Недавно на работе пришлось написать небольшой движок запускающий плагины на C#. Плагины хранились в виде classlib сборки (DLL) в БД. Они хранились в поле varchar(max) в таблице. Соответственно после загрузки данных в БД нужно было их неким образом заполучить в программе. Данные в программе хотелось получить в виде массива байтов. По определенным причинам работа с БД в этой части программы велась не через ОРМ-ы, а через обычный ADO.NET. Соответственно, кусок, который грузит сырые данные в массив байтов вот:
// создаем соединение с БД
SqlConnection currConn = new SqlConnection("Server=(local);Database=TestTransferSDB1;Trusted_Connection=true;Integrated Security=SSPI;");
currConn.Open();
// грузим данные простейшим запросом
String queryString = " SELECT RawDt FROM dbo.TA WHERE ID= \'B0657E8C-167D-42BC-A63D-18B64E364028\' ";
SqlCommand command = new SqlCommand(queryString, currConn);
SqlDataReader reader = command.ExecuteReader();
reader.Read();
// конвертим данные в нужную нам форму
SqlBinary binaryStream = reader.GetSqlBinary(0);
Byte[] dataInBytes = binaryStream.Value;
Тэги: (решение), ado.net, сделать
Как загрузить файл в БД, выполнив TSQL запрос в ManagementStudio ? 2013-04-26 23:33:00
+ развернуть текст сохранённая копия
Недавно на работе пришлось написать небольшой движок запускающий плагины на C#. Плагины хранились в виде classlib сборки (DLL) в БД. Они хранились в поле varchar(max) в таблице. Для проверки движка мне нужно было быстро загрузить файл в это поле. Кусок программы, который загружает плагины пишу не я. Так что я решил найти быстрый способ загрузить файл не создавая отдельную программу загрузчик. Оказалось, что это довольно просто сделать выполнив TSQL запрос из Management Studio. Запрос довольно специфичный (скорее всего на других БД будет выглядеть по другому), он такой:
INSERT TestTransferSDB1.dbo.TA
( Field1, Field3, RawDt )
SELECT 'some', GETDATE(), TABL.*
FROM OPENROWSET(BULK 'c:\temp\Engine.dll', SINGLE_BLOB) TABL
Тэги: (решение), tsql, база, сделать
СЕКРЕТНОЕ ПИСЬМО ПАРТНЕРАМ 2013-04-25 09:52:17
СЕКРЕТНОЕ ПИСЬМО ПАРТНЕРАМПривет всем самым амбициозным и целеустремленным партнерам системы Empower ...
+ развернуть текст сохранённая копия
СЕКРЕТНОЕ ПИСЬМО ПАРТНЕРАМПривет всем самым амбициозным и целеустремленным партнерам системы Empower Network!Платформа Empower Network обновляется! ПЕРВЫЙ СЕКРЕТ, о которм мы не могли…
Тэги: 25$, empower, network, всего, гарантированный, защита, месяц..., незамедлительный, правило, приобретать, решение, свой, страховка, упустить, шанс!
Витебские активисты разработали проекты решения локальных проблем в области (фото) 2013-04-22 19:06:54
... местные проблемы, решением которых в ближайшее ... составлены проекты их решения, сообщила витебская ...
+ развернуть текст сохранённая копия
В Витебске 20-21 апреля для местных активистов Белорусского Христианской Демократии прошел семинар-практикум по эффективным партийным менежмэнце. На нем былиакрэсленыя три главные местные проблемы, решением которых в ближайшее время будут заниматься активисты БХД, а также были составлены проекты их решения, сообщила витебская абаласная координатор оргкомитета БХД Татьяна Северинец. К данным проблемам относятся: строительства смеццеперапрацовваючага завода в Витебске; ремонт моста через Днепр в Орше; газификация деревни в Глубокском районе. На семинаре с авторскими песнями также выступил Бешенковичский активист БХД Георгий Станкевич, который,… Узнать больше »
Тэги: активист, витебский, локальный, область, проблема, проект, разработать, решение, фото, христианство
Главная / Главные темы / Тэг «решение»
|
Взлеты Топ 5
Падения Топ 5
|