問題タブ [controller-factory]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vb.net - カスタム コントローラ ファクトリでエクスポートが見つからない
探している controllerName は正しい名前であり、コンテナーには一致する名前のエクスポートが含まれていることがわかっています。なぜか見つからない。プロジェクトの指定したフォルダーに置いた dll からインポートしようとしています。常にデフォルトのコントローラーを返そうとしますが、メイン プロジェクト ディレクトリにないため、dll コントローラーを見つけることができません。controllerFactory が DLL を検出することはわかっていますが、適切に読み込んでいません。
ここに私の CreateController 関数があります:
明確にする必要がある場合は、お知らせください。ありがとう!
編集: リターン Me.defaultControllerFactory.CreateController(requestContext, controllerName) のエラー メッセージは HttpException was unhandled by user code です。コントローラー パス 'CUContractNumberPlugin/ChangeCUNumber' が見つからないか、IController を実装していません。
これがそれが話しているコントローラーです。
これは、部分ビューをメイン ビューにロードしているときに呼び出されます。部分的なビューは次のとおりです。
asp.net-mvc-3 - autofac を使用したカスタム ControllerFactory
まず第一に、私は asp mvc の初心者なので、しばらくお待ちください。
現在、autofac が IoC コンテナーになるプロジェクトを作成したいので、カスタム コントローラー ファクトリを要求します。カスタムコントローラーファクトリーでは、コントローラーのコンストラクターを介して実装データリポジトリを設定したいと考えています。
私はそれがそのように行われるべきだと思った:
私のコントローラー工場コード:
コントローラ マップが空です。IController は reqiseter ではありませんが、autofac ビルダーで RegisterControllers を使用したため、IController を解決したいときにエラーが発生しました。
正しい方法でそれを行う方法を教えていただけますか?
asp.net-mvc-4 - IControllerFactory.CreateController は、すべてのリクエストですべてのコントローラーに対して呼び出されます
重大ではありませんが、注意を喚起する問題が発生しています。私はたまたま、自分で実装したデフォルトのコントローラーファクトリーを置き換えたMVC4 Webアプリケーションを持っています。このファクトリー内で、コントローラーのコンストラクターパラメーターを注入するためにユニティを使用しています。
私が理解していないのは、私が行うすべてのリクエストに対して、URL 内のコントローラーや部分ビューによって呼び出されるコントローラーだけでなく、アプリケーション内のすべてのコントローラーに対して CreateController メソッドが呼び出される理由です。
その行動は正常ですか?それは必要ですか、それともそれを防ぐ方法はありますか? これには理由が見当たらず、私の調査では良い答えが得られませんでした。
ありがとう!
c# - コントローラーの衝突が発生した場合、カスタム ControllerFactory は DefaultControllerFactory を置き換えません
カスタムコントローラーファクトリーがあります(私の質問に関連する非常に基本的な実装です):
これは次のように登録されていglobal.asax
ます:
このコントローラー ファクトリに設定されたブレークポイントは、コントローラーの解決に競合がない場合 (たとえば、解決プロセスでコントローラーが 1 つしか見つからない場合) に適切にヒットします。ただし、ルートで名前空間の制約を使用せずに同じ名前のコントローラーが 2 つある場合 (私の場合: 1 つはエリア内にあり、もう 1 つはエリア内にありません)、コントローラーはヒットせず、DefaultControllerFactory
引き継ぎ、スローします(予想される) 例外。
私の質問
MyControllerFactory
正しく登録できていますか?上記で概説したケースで使用されていない他の理由はありますか?
私がやろうとしていること
(構成で指定された) 領域で定義されているコントローラーを自動的に使用する を作成しようとしてControllerFactory
います (つまり、上記のように競合が発生した場合は、非領域コントローラーの代わりに領域コントローラーを使用します)。エリアに一致するコントローラーが含まれていない場合は、エリアにないコントローラーにフォールバックします。
javafx-2 - JavaFX カスタムコントローラーファクトリー
私は、カスタム実装を使用してメソッドを実験し、FXMLLoader
使用しています。setControllerFactory
Callback<P,R>
ORACLE のドキュメントには、次のように記載されています。
実装は、指定されたタイプのコントローラーを作成しない、または作成できないことを示すために null 値を返す場合があります。この場合、デフォルトのコントローラー構築メカニズムがローダーによって採用されます。
私が達成したい結果は、依存性注入フレームワークを使用して、パラメーターを必要とするコントローラーを作成できますが、パラメーターを必要FXMLLoader
としないコントローラーをロードできるようにすることです。
したがって、ViewController
パラメーターを受け入れないクラスを使用する次の単純な FXML ファイルがある場合...
そして、次の単純なコントローラー ファクトリの実装を使用してFXMLLoader
、この場合はコントローラーの構築を管理することを に通知します...
メソッドを呼び出した後、クラスload()
の Initialise メソッドが呼び出されることはありません (ブレークポイントでこれを確認しました)。ViewController
ViewController
クラスのインスタンスを返すようにコントローラー ファクトリの実装を変更すると、すべてが期待どおりに機能します。
混乱を解消するのを手伝ってくれる人はいますか? インターフェイスの使い方がCallback
間違っているのでしょうか、それとも ORACLE のドキュメントが間違っているのでしょうか?
c# - Orchard でカスタム コントローラー ファクトリを設定するにはどうすればよいですか?
Orchard CMS に精通している人は、問題を解決するのに役立ちますか? Orchard モジュールを作成していますが、コントローラーにはコンストラクター引数 (サービス インターフェイス) があります。
Orchard のどこで、これを処理するカスタム コントローラー ファクトリをセットアップしますか (ユーザーがインストールした他の Orchard モジュールに干渉することはありません)。
それは Global.asax で行われますか? 見つけた
OrchardStarter.cs にあるので、他のコントローラー ファクトリがどこに設定されるかについて混乱しています。
Autofac DI を使用しただけですか? もしそうなら、誰かが素晴らしいコードサンプルを持っていれば! (Autofac と Orchard は初めてです)
ありがとう