Вопрос

Можно ли загрузить контакт в приложении Windows?

У меня есть генерация электронной почты в Интернете, но я хочу переместить его в службу Windows для ежемесячной рассылки.

Письма теперь реализованы как usercontrols, таким образом, HTML-человек может легко изменить внешний вид.

Реализация текущего рендеринга выглядит как:

StringBuilder sb = new StringBuilder(4000);
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);

Page page = new Page();

EmailTemplateBase emailCtrl = (EmailTemplateBase)page.LoadControl(
                "Controls/EmailTempaltes/Template.ascx");
// Exception here

emailCtrl.DataContext = dataContext;
emailCtrl.Parameter = parameter;
emailCtrl.RenderMode = renderMode;
emailCtrl.DataBind();
emailCtrl.RenderControl(htw);

subject = emailCtrl.Subject;

string MessageText = sb.ToString().Replace("\t", "").Replace(Environment.NewLine, "");

return MessageText;
Это было полезно?

Решение

Решение для меня было называть веб-сервис, который смог генерировать HTML из .ascx.

  1. Передать необходимые параметры в WebService
  2. В WebService постройте новую страницу, чем LoadControl
  3. Установите все параметры
  4. Рендеринг в StringBuilder.

Вы можете увидеть под вопросом кода.

Другие советы

вместо LoadControl Метод, используемый в ASP.NET, вы можете использовать Controls.Add Метод родительского контроля. Просто добавьте панель, чтобы быть родителем, то:

UserControl uc1 = new UserControl //this is your usercontrol

Panel1.Controls.Add(uc1);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top