2009-07-10 8 views
1

System.Web.UI.Pageを記述してアセンブリに格納できますか? どうすればそのページを呼び出すことができますか?ASP.NETと動的ページ

だから、私はそのようなクラス書いている...深く

を行く:

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!!!"); 
    } 

} 

アセンブリに格納されています。

だから私はそのassemplyを登録し、そのクラスを呼び出すhttp://localhost/test.aspxを得ることができますか?

ありがとうございました。

Bye。

答えて

1

これを行うには、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ファイルには、私はまだreflactionを使用してのhttpHandlersセクション

<add verb="POST,GET,HEAD" path="WRC/*" type="MyProject.Code.MyHandlerFactory, MyProject"/> 
+0

非常に、非常に興味深い、ありがとう! – Neo1975

0

あなたが何を後にしているか分かりません。デプロイメントプロジェクトをセットアップする場合、すべてのdllファイルを単一のアセンブリにマージさせる設定があります。それはあなたが欲しいものですか?どちらの方法でも、複数のaspxページで同じコードの背後にあるクラスを再利用したい場合は、変更する必要があるページ宣言(aspxの1行目のコード)です。

0

いくつかのオプション 1.ビジュアルスタジオの参照の一部としてこのアセンブリを参照することができます 2.テストASAPXページからアセンブリとクラスをロードするには、relfectionを使用します。

+0

にこのようなものを含めるとAssemblieをロードします私の問題は、特定のクラスを呼び出すようにIISに伝えることです。 – Neo1975

+0

IISはアセンブリを読み込みません。 URLパターンを処理して、あなたが望むページを返すために、HTTPhandlerファクトリを登録する必要があります。粗末な方法は、あなたのtest.aspxの他のページクラスからの応答をレンダリングすることです。 –

関連する問題