Использование ASP.NET пользовательских элементов управления для шаблонов без проекта веб-сайта? - PullRequest
0 голосов
/ 14 января 2009

Есть ли способ использования пользовательских элементов управления ASP.NET (файлы .ascx) для удовлетворения моих собственных потребностей шаблонов в приложении .NET, если это приложение не является веб-сайтом?

На самом деле это библиотека классов, которая будет принимать данные, объединять их с шаблоном, а затем выплевывать.

Я не хочу писать свою собственную систему шаблонов с нуля, поэтому я хочу повторно использовать функциональность ASP.NET для своих нужд.

Мне сказали, что рендеринг пользовательского контроля ASP.NET зависит от IIS. Есть ли какой-нибудь хак или трюк, чтобы заставить его работать в библиотеке классов .NET?

Ответы [ 3 ]

1 голос
/ 14 января 2009

Я не совсем уверен, правильно ли я слежу за вопросом, но если вы просто ищете движок шаблонов, вы можете проверить NVelocity , который является частью проекта Castle.

Позволяет вам создать такой шаблон (скопированный из руководства по началу работы на сайте):

From: $from
To: $to
Subject: $subject

Hello $customer.Name

We're please to yada yada yada.

А затем сформулируйте это так:

Template template = velocity.GetTemplate(@"path/to/myfirsttemplate.vm");
VelocityContext context = new VelocityContext();
context.Put("from", "somewhere");
context.Put("to", "someone");
context.Put("subject", "Welcome to NVelocity");
context.Put("customer", new Customer("John Doe") );

StringWriter writer = new StringWriter();
template.Merge(context, writer);
Console.WriteLine(writer.GetStringBuilder().ToString());
0 голосов
/ 14 января 2009

В дополнение к ответ Раджша Я хотел бы отметить, что существует шаблон веб-проекта развертывания для Visual Studio, который позволяет прекомпилировать Файлы .ascx в одну сборку.

Это упрощает процесс развертывания / установки. Вам не нужно копировать / синхронизировать новые файлы ascx, только созданную DLL.

Вот ссылка на статью MSDN .

...