2010-11-24 13 views
0

私は少し新しい.netですので、このようなことが可能かどうか疑問に思っていました。 私はいくつかの "プラグイン"をロードする必要がある1つの基本的なaspxスクリプトを持っています。 すべてのプラグインには独自の設定があり、異なるロジックを実行する必要があります。 私はPHPで何をしたいのですが、各プラグインのクラスを作成し、そのクラスをロードし、設定ファイルを渡して、出力を与えるクラスのメソッドを呼び出します。しかし、vb.netでも可能ですか?私は複数のクラスを持つ複数のファイルを持っている必要があります、それらのファイルを読み込むプラグインの名前に応じて、プラグインの設定を解析するためにいくつかのメソッドを呼び出します。vb.netファイルを動的にロードして呼び出します。

ありがとう

答えて

1

ASP.NETで達成しようとしていることを達成するさまざまな方法があります。 User ControlsまたはServer Controlsを使用できます。ユーザーコントロールである主な違いはASP.NETページのように動的にコンパイルされ、サーバーコントロールはあらかじめコンパイルされています。

サーバーコントロールは、再利用が非常に重要な自己完結型コントロールを作成するのに非常に便利です。コントロールを必要とするプロジェクトに単一の.dllを展開し、OOPコードの他の共有ライブラリと同じようにアクセスできます。

ページにサーバーコントロールを追加するのは非常に簡単です。 BINフォルダに.dllを置き、そのページへの参照を追加するだけです。参照は、このようになります

<radm:radmenu id="RadMenu5" runat="server"></radm:radmenu> 

ユーザーコントロールのコードをグループ化するための素晴らしいですし、アプリケーションに合わせてコントロール:あなたのページの上のコントロールへのアクセス

<%@ Register TagPrefix="radM" Namespace="Telerik.WebControls" Assembly="RadMenu.Net2" %> 

次のように簡単になります。さまざまなプロジェクトでコードを再利用する必要はなく、そのアプリケーションでのみ便利な方法でコントロールを組み合わせたり操作したりしています。以下に示すように

ユーザーコントロールを登録および使用は、サーバーコントロールのものと同様である。

<%@ Register TagPrefix="Control1" TagName="Menu" Src="controls/Menu.ascx" %> 

コードでそれをアクセスも同様に行うことができる。

<Control1:Menu ID="ucMenu" runat="Server" /> 

プレースホルダコントロールをページに最初に追加すると、プログラム的にページにコントロールを追加することもできます。このコードは、コードビハインドファイルになり

:以下の方法と同様にあなたの.aspxページは、その後、あなただけは、動的にコントロールを追加したい場所でPlaceHolderControlが必要になります

Dim ucMenu As UserControl = LoadControl("/Controls/Header.ascx") 
MenuPlaceHolder.Controls.Add(ucMenu) 

。以下に示すように:

<asp:PlaceHolder ID="MenuPlaceHolder" runat="server" /> 
+0

徹底的な説明をありがとうございます!私のケースでは、2番目のソリューションとユーザーコントロールを使用する必要があると思います。ありがとうございました。 – Marius

+0

実際、私はそれに固執してしまった。私は、例えばある方法を持つ統一された構造を持つ必要があります。"processPluginData()"を呼び出し、ロードされたコントロールごとにそのメソッドを呼び出します。これを行うには、いくつかの基底クラスから継承する必要がありますが、私はfamilliarではないので、私は非常に混乱しています。ネットと私は私の基底クラスを入れ、後でそれを継承する方法を知らない。もし私がメインのaspxページに入れたら、私はそれをコントロールに見えるようにする方法を知らない。 – Marius

+0

心配しないで、私はそれを解決したように見える;] – Marius

0

この種の目的では、UserControlを使用できます。
ページ内にusercontrolsをロードし、usercontrolsで使用可能なメソッドを呼び出してパブリックメンバーにアクセスすることもできます。

関連する問題