ASP.NET и динамические страницы - PullRequest
1 голос
/ 10 июля 2009

Можно ли написать System.Web.UI.Page и сохранить в сборке? И как я могу заставить эту страницу звонить?

Так что я пойду глубоко ...

Я пишу такой класс:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Runtime.InteropServices;
using System.Reflection;
using WRCSDK;
using System.IO;

public partial class _Test : System.Web.UI.Page
{
    public _Test()
    {
        this.AppRelativeVirtualPath = "~/WRC/test.aspx";
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write("You are very lucky!!!");
    }

}

которые хранятся в сборке.

Итак, как я могу зарегистрировать этот ассемблер и получить, что http://localhost/test.aspx вызовет этот класс?

Спасибо.

Bye.

Ответы [ 3 ]

1 голос
/ 10 июля 2009

Для этого вам понадобится HttpHandler или HttpModule.

Регистрация сборки аналогична регистрации любой сборки - просто определите этот класс в файле кода и поместите скомпилированную DLL в каталог bin.

Затем в качестве примера вы можете создать IHttpHandlerFactory:

public class MyHandlerFactory : IHttpHandlerFactory
{
  public IHttpHandler GetHandler(HttpContext context, ........)
  {
     // This is saying, "if they requested this URL, use this Page class to render it"
     if (context.Request.AppRelativeCurrentExecutionFilePath.ToUpper() == "~/WRC/TEST.ASPX")
     {
       return new MyProject.Code._Test();
     }
     else
     {
       //other urls can do other things
     }

  }
  .....
}

Ваш web.config будет содержать что-то подобное в разделе httpHandlers

  <add verb="POST,GET,HEAD" path="WRC/*" type="MyProject.Code.MyHandlerFactory, MyProject"/>
0 голосов
/ 10 июля 2009

Несколько вариантов 1. Вы можете ссылаться на эту сборку как на часть ссылок на визуальную студию. 2. Используйте relfection для загрузки сборки и класса с тестовой страницы ASAPX.

0 голосов
/ 10 июля 2009

Не уверен, что ты здесь. Если вы настраиваете проект развертывания, есть параметр, позволяющий объединить все файлы DLL в одну сборку. Это то, что вы хотите? В любом случае, если вы хотите повторно использовать один и тот же код за классом для нескольких страниц aspx, вы должны изменить декларацию страницы (1-я строка кода в aspx).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...