MVCでアクションフィルタを作成していて、ActionFilterAttributeクラスから継承する新しいアトリビュートを作成し、OnActionExecutedメソッドを実装しました。それから、私はこの新しい属性でアクションを装飾しました。私が最初にアクションを呼び出すと、すべてが問題なく、AttributeのコンストラクタがOnActionExecutedメソッドと呼ばれます。この同じアクションを2度目に呼び出すと、Attributeのコンストラクタが呼び出されず、Actionの最初の呼び出しで設定された内部属性メンバーの状態がまだ保持されていることがわかります。属性のインスタンスは、アクションへのすべての呼び出しに使用されます。各属性呼び出しに新しいインスタンスを強制する方法はありますか?複数のメソッド呼び出しに同じアトリビュートが使用されています
-2
A
答えて
2
タイプ、メンバー、パラメータなどにアトリビュートをアタッチするときは、アトリビュートターゲットのメタデータに注釈を付けます。あなたの場合、メソッドに属性を適用するので、メタデータレベルでメソッドにアタッチされ、メソッドが呼び出されるインスタンスにはアタッチされません。つまり、メソッドを適用するメソッドごとに新しい属性インスタンスを取得し、ターゲットメソッドが定義されているクラスのインスタンスごとに新しいインスタンスを取得することはできません。
メタデータには変更可能な状態がないため、正しく使用されていれば、属性も変更されません。属性の働きを変更することはできないので、内部状態に依存しない方法で属性を実装する必要があります。
関連する問題
- 1. アトリビュートを使用してメソッドを呼び出す
- 2. Androidと同じメソッドが2回呼び出されました
- 3. 同じ引数を持つ同じメソッドへの複数の呼び出しでMockitoを使用する
- 4. cellForRowAtIndexPathは同じ「アイテム」に対して複数回呼び出されますか?
- 5. 複数のAJAXを同じ関数を呼び出して呼び出す
- 6. 同じメソッド名で複数のdllインポートを呼び出す
- 7. 同じインスタンスの2つのメソッドを呼び出すと、WCFのDisposeメソッドが呼び出されます
- 8. C#で同じスコープに対して複数のusingステートメントを使用すると、Dispose()メソッドが呼び出される順序が保証されますか?
- 9. onResume()メソッドが同じアクティビティから呼び出していない
- 10. asp.net mvcで同じコントローラーアクションが呼び出されています
- 11. 同じDivを複数回使用してAjaxを呼び出す方法
- 12. メソッドの呼び出しが複数回
- 13. 複数のAPI URLを呼び出して同時に呼び出します
- 14. GenericUDFの初期化メソッドが複数回呼び出されています
- 15. 複数のフォームがロードイベントで同じメソッドを呼び出す方法
- 16. ユニットテスト:同じメソッドの複数の呼び出しをアサートする方法は?
- 17. 複数のCTEを同じクエリで複数回呼び出す
- 18. angularjs ng-classメソッドが複数回呼び出されています
- 19. 複数の関数呼び出しは、同じ入力引数
- 20. 非同期メソッドが呼び出された同期メソッドを待機します
- 21. MOQを使用して異なる返品で同じメソッドを複数回呼び出す
- 22. 同じ引数を2つ使用して関数を呼び出すが、呼び出し中に2番目の関数を呼び出す
- 23. メソッド呼び出しの順番が混じっています
- 24. $ mdToast同じアトリビュートが表示されています
- 25. jQueryが動作していない同じobjのメソッドを呼び出す
- 26. PUTリクエストが複数回呼び出されています
- 27. RxAndroid onNextが複数回呼び出されています
- 28. Javaコンストラクタが複数回呼び出されています
- 29. FormFlow DefineAsyncDelegateが複数回呼び出されています
- 30. jquery .clickが複数回呼び出されています
コンストラクタは初めてアトリビュートを構築するために呼び出されます。アトリビュートは既に構築されているため、再度アクセスされることはなく、静的コンストラクタと同じように動作します。 これは推測ですが、コードを入力してください。 – Nekeniehl
いくつかのコードを提供できますか?正確に何を達成したいのか、どこに止まっているのか想像するのは難しいです。 – HimBromBeere