Re: Алгоритмы кодогенерации
От: Andir Россия
Дата: 09.03.05 05:52
Оценка:
Здравствуйте, Андрей Корявченко, Вы писали:

АК>Статья:

АК>Алгоритмы кодогенерации
Автор(ы): Андрей Корявченко
Дата: 19.03.2004
Данная статья рассказывает об одном из способов решения проблемы недостаточной гибкости и производительности средств, предоставляемых платформой Microsoft .NET — предварительной генерации кода. Рассматриваются различные подходы: использовании функции string.Format; использование XSLT-преобразований; использование ASP.NET; использование технологии CodeDOM для генерации кода на нескольких языках; компиляция кода во время выполнения программы; генерация IL-кода без компиляции.


private static AppDomain GetDomainForGenerator()
{

AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationName = "ASP.NET Generator";

AppDomain dom = AppDomain.CreateDomain("generator domain" , null, setup);

dom.SetData(".appPath", Directory.GetCurrentDirectory() +
Path.DirectorySeparatorChar);
dom.SetData(".appDomain", "*");
dom.SetData(".appVPath", "/");
dom.SetData(".domainId", dom.FriendlyName);
dom.SetData(".hostingVirtualPath", "/");
dom.SetData(".hostingInstallDir", HttpRuntime.AspInstallDirectory);

return dom;
}


Под вторым фрейморком не получается заставить это работать, выдаёт странное исключение по null-reference и всё

[NullReferenceException: Object reference not set to an instance of an object.]
System.Web.CachedPathData.GetPathData(String path) +363
System.Web.CachedPathData.GetPathData(String path) +275
System.Web.HttpContext.GetFilePathData() +26
System.Web.HttpContext.GetConfigPathData() +16
System.Web.Configuration.CustomErrorsSection.GetSettings(HttpContext context, Boolean canThrow) +89
System.Web.HttpResponse.ReportRuntimeError(Exception e, Boolean canThrow, Boolean localExecute) +98
System.Web.HttpRuntime.FinishRequest(HttpWorkerRequest wr, HttpContext context, Exception e) +438


Если сборку запихнуть в bin и создать по старому, то всё получается ... А через домен ну никак. Где-то каких-то данных не хватает, но никак не могу определить каких.
Никто не пытался повторить такое на .Net Framework 2.0 Beta?

С Уважением, Andir!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.