0

コードをコンパイルし、インメモリで生成された DLL をロードする必要があるアプリケーションのシナリオがあります。この部分までは、インフラストラクチャの観点からの要件であり、変更することはできません。

メモリ内で DLL をコンパイルしてロードすることに問題はありません。ただし、asp.net はメモリ内の参照/型を見つけることができないため、ASP.NET aspx ページの読み込みに失敗します。

考えられる方法は2つしか考えられませんが、どちらが最も実用的な方法かはわかりません。

  1. カスタム HTTP ハンドラーを使用して aspx ページまたは ascx コントロールを自分でコンパイルおよび実行する方法を見つける
  2. 実行時にページ/ascx コントロールへの参照としてインメモリ dll をリンクする方法を見つけます。

あなたの洞察に感謝します...

4

1 に答える 1

0

私がかつて働いていた会社では、コントロールを追加/変更するたびにサイトを再コンパイルする必要なく、ユーザー コントロール (ascx) をプロジェクトに動的に追加できる「プラグ アンド プレイ」アーキテクチャがありました。

基本的なアーキテクチャには、各動的コントロールの名前、dll の場所、および ascx ページを保持する DB テーブルが含まれていました。各コントロールは個別の dll にコンパイルされ、その dll と ascx ページは一緒にファイル システムに格納されました。各コントロールは、それをページに読み込んでレンダリングできるようにするインターフェースも実装しました。

各ページの読み込み中、インターフェイスに遭遇するたびに、 を使用してコントロールをページに動的に読み込みますLoadControl()

これはあなたがやろうとしていることですか?

于 2012-04-17T18:18:47.340 に答える