Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Code Injection при компиляции 
:(
    Опции темы
neutrino
Дата 25.4.2011, 09:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 3
Всего: 62



Приветствую!

Имеется часть кода выполняющяя всякие вычисления, результатом которых является какая-нибудь структура данных. Для примера можно рассмотреть вычисление таблицы значений нормального распределения (в принципе не важно).

Результат этот не изменяется во время выполнения программы. Хотелось бы запустить этот код в момент компиляции и уже результат сериализовать, например, в ресурсы проекта, а вместо ссылки на результат, инджекнуть код который десериализует результат из ресурсов.

Тем самым можно сэкономить время запуска программы (если вычисления берут много времени).

Я знаю о существовании PostSharp и даже пользовался им ради интереса где не нужно. Но вот хотел послушать вашего совета. Хотелось бы оформить это в конечном итоге в виде плагина для студии. Но для начала нужно разобраться как это все будет работать.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
Artemon
Дата 25.4.2011, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 1
Всего: 20



Можно заюзать событие Pre build event в настройках проекта. В этом событии формировать нужную тебе таблицу и засовывать в ресурсы.


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
A5uKa
Дата 25.4.2011, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: нет
Всего: 16



PM   Вверх
neutrino
Дата 25.4.2011, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 3
Всего: 62



Это то да, но вопрос больше относится к тому как поменять ссылку в коде на вызов десериализатора. Сам исходный код менять, конечно не буду.

Добавлено через 3 минуты и 22 секунды
Предыдущий пост адресован Artemon
 
A5uKa, То, что в Nemerle есть макро я знаю. Как это мне поможет?



--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
diadiavova
Дата 25.4.2011, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Если структура данных представима в виде какого-нибудь текстового формата, то можно использовать текстовые шаблоны.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
neutrino
Дата 25.4.2011, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 3
Всего: 62



diadiavova, Интересная тема не знал о таком. Правда я бы не хотел, чтобы пользователь писал шаблонами. Мне бы хотелось, чтобы он писал как всегда на C#


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
diadiavova
Дата 25.4.2011, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Цитата(neutrino @  25.4.2011,  12:01 Найти цитируемый пост)
 Правда я бы не хотел, чтобы пользователь писал шаблонами. Мне бы хотелось, чтобы он писал как всегда на C# 

Дык там и так на шарпе пишется логика, а текст, который надо вставлять как есть - вставляется как есть. Что-то наподобие того, что делается в ASP.Net, только в сильно упрощенном виде. Почитай связанные разделы повнимательнее. Кроме того существует пара плагинов для студии, для работы с шаблонами.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
neutrino
Дата 25.4.2011, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 3
Всего: 62



ОК. гляну.

А с постшарпом кто-нибудь работал?


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
diadiavova
Дата 25.4.2011, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 31
Всего: 142



Цитата(neutrino @  25.4.2011,  12:16 Найти цитируемый пост)
А с постшарпом кто-нибудь работал?

Я немного баловался, но там самое интересное только в платной версии. Есть еще несколько аоп-фреймворков, некоторые из которых, имхо, заслуживают куда большего внимания. Взять например aspectDNG. В отличие от постшарпа там в самом коде вообще необязательно оставлять следы его использования, просто пишется дополнительный файл в котором описывается какой аспект куда присобачить, а так же библиотека аспектов. После компиляции проекта запускается програмка, которая патчит твою сборку и вставляет в нее код из библиотеки аспектов. И ничего не надо таскать с собой в рантайме и кроме того, если аспекты(к примеру) используются только для отладки, то для того, чтобы убрать их следы достаточно перекомпилировать проект. 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1120 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.