問題タブ [resourceproviderfactory]

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.

0 投票する
1 に答える
1416 参照

c# - ResourceProviderFactory の定期的な更新

データベースから文字列を返し、何にでも使用できるカスタム リソース プロバイダーを作成しました。

問題は、これらのアイテムのキャッシュを「破棄」してデータベースから再ロードする方法が見つからないことです。理想的には、これを x 分ごとに行うか、キャッシュを更新してリロードするときに手動で行います。

技術的には簡単です。私はすべてをハッシュテーブルに保存しているので、必要に応じてそれを核攻撃してリロードしてください。ただし、ResourceProviderFactory は各リソース クラスの読み込みを処理するため、作成したクラスを列挙する方法がわかりません。

コードの概要:

私が計画していたのは、CreateGlobalResourceProvider が呼び出されるたびに参照を追加することでした (たとえば、新しいオブジェクトをコレクションに追加し、必要に応じてそのオブジェクト内のすべてを列挙します)。 ResourceProviderFactory に奇妙な何か。

このすべてのコードを作成する前に、ResourceProviderFactory IEnumerable メソッドまたはこれらすべてのオブジェクトを簡単な方法で提供するものはありますか?

0 投票する
1 に答える
2709 参照

asp.net-mvc - .NET MVCローカリゼーション(resourceprovider)の実装が正しく機能しない

私は現在、ローカライズされたWebサイトを実装しています。データベースにリソースを保存するためのカスタムResourceProvider+Factoryを作成しました。これはすべて機能します。次のようにデータを保存しています。

正しければ、上記のサンプルにグローバル(テスト)リソースとローカル(製品)リソースを保存しましたか?

私はResourceHelpersのこの実装を使用しています(リンク)(以下のコード)。これにより、次のコードに基づいてリソースを表示できるようになります。

グローバルリソース:これは機能します(出力: "Hi")

ローカルリソース:ここに問題があります、これは機能しません、何が起こっているのですか?

最初のコードサンプルは、期待どおりに「Hi」を出力します。ただし、2番目のコードサンプルは例外をスローします(キー「Products」を持つリソースオブジェクトが見つかりませんでした。)(〜行17の下のコードで行をマークしました)。 はい、「〜/ Views / Products/Index.aspx」の2行目を呼び出しています

これが私が使用しているヘルパーコードです:

0 投票する
1 に答える
741 参照

c# - SQLResourceProvider によって提供される空の asp.net リソース キャッシュ

SQLResourceMVC2 アプリケーションにプロバイダーを実装しました。データベース内の何かを手動または Web フォームで変更した場合、ResourceProviderすべてのリソースを削除して、データベースから再度フェッチする必要があります。

ResourceCacheASP.NET 独自の API によって管理されているこれをクリアする方法はありますか?

0 投票する
1 に答える
536 参照

asp.net-mvc - ASP.NET カスタム ローカリゼーション

私はかなりの調査を行いましたが、これをどのように進めるべきかわかりません。

通常のローカリゼーションは、言語が変更された場合にのみ変更されるため、フランス語の Hello は Bonjour になりますが、私のアプリケーションには特定のユーザー向けの特別なキーワードが必要なので、UserX は「Hello」を「Allo」にする必要があると言うかもしれません。

IdentityName_resourceKeyを持つリソース キーが必要です。このキーが存在する場合は、それ以外の場合はresourceKeyにフォールバックします。

カスタム ResourceProvider が必要だと考えていますが、私の実装は単純な if ステートメントであるため、完全なリソース プロバイダーを記述したくありません。

私は正常に動作する DisplayName 属性の拡張機能を作成しましたが、すべてのデータ注釈属性にそれらのいずれかが必要になり、ページまたはコントローラーでリソースを直接使用すると機能しないため、これはあまり良くありません...

最小限のコードでこれを実装する最良の方法を探しています..

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

0 投票する
1 に答える
2293 参照

asp.net-mvc - カスタム ResourceProviderFactory 依存性注入

プロパティ インジェクションを実行してリソースを取得するカスタム DB 実装を追加するためにインスタンス化された ResourceProviderFactory への参照を取得できる ASP.NET MVC の場所はありますか?

カスタム リソース プロバイダーをロードしていますが、静的 DI コンテナーを使用してプロバイダー内に依存関係を注入する以外に方法があるかどうかを知りたいと思いました。

MVC で Role および Membership プロバイダーに注入する方法と同様です。

0 投票する
1 に答える
405 参照

asp.net-mvc - カスタムリソースプロバイダーでDbContextを使用する場合は、異なるスコープで注入します

アプリケーションには、(とりわけ)次のコンポーネントがあります。

  • MyDbContext:エンティティフレームワークのデータアクセス
  • DBResourceProviderFactory:カスタムResourceProviderFactoryを提供するカスタムIResourceProviderDBResourceProvider...と呼ばれる)
  • 他のサービス
  • StructureMap

カスタムリソースプロバイダーは、このSO回答MyDbContextで説明されているのと同様に注入されたを使用して、データベースでリソースを検索しています。

これMyDbContextは他のさまざまなサービスでも使用されており、Webアプリケーションであるため、StructureMapsHttpContextScopedメソッドを使用MyDbContextして、リクエストの有効期間をリクエストの有効期間に制限します(このテーマに関する他のSOの質問とその回答を参照してください)。

ただし、の存続期間IResourceProviderは単一のhttpリクエストに限定されないようです。したがって、最初の要求の後に破棄される参照にDBResourceProviderぶら下がっています。MyDbContext

このライフタイムの不一致をどのように処理できますか?HttpContextスコープのインスタンスを他のすべてのサービスに返す間、StructureMapはトランジェントMyDbContextを返しますか?IDbResourceProvider

それを行うには、2つの異なる実装が必要ですか?マーカーインターフェース?または、Entity Frameworkを使用してローカライズされたリソース(パフォーマンスなど)を最初に検索するのは悪い考えですか?

0 投票する
1 に答える
194 参照

asp.net - asp.net アプリの既定の ResourceProviderFactory を取得する方法はありますか?

asp.net アプリケーションのカスタム ローカリゼーション プロバイダーの実装に成功しました。私は現在、何らかの理由で CustomResourceProviderFactory を作成する方法がないフォールバック シナリオで作業しています。または、特定のシナリオでそれを使用したくない場合は、asp.net でデフォルトの ProviderFactory を使用できるようにしたいと考えています。

そのクラスのインスタンスを作成または取得する方法はありますか? 正確なタイプもわかりません。見つけたすべての情報は、既に完了したカスタム ファクトリの作成に関するものです。

0 投票する
1 に答える
402 参照

c# - カスタム IResourceProvider の有効期間を制御するにはどうすればよいですか?

ASP.NET MVC アプリケーションにカスタム リソース プロバイダーを挿入するためにこのアプローチを採用しましたが、オブジェクトの有効期間の管理に問題があります。

私は Castle Windsor を使用しているので、ファクトリの次の実装があります。

しかし、IResourceProviderコンテナに登録した は、有効期間が正しく管理されていないようです。独自の依存関係が他にもいくつかあり、そのうちのいくつかは (Web 要求ごとまたはトランザクションごとに) やや複雑なライフスタイルを持っているIResourceProviderため、依存関係が常に有効であることを確認するために一時的なものとして登録しました。しかし、MVC フレームワークは、次の要求で依存関係が無効になったときに発生するIResourceProviderWeb 要求全体への参照を保持して、足を踏んでいます。ObjectDisposedExceptions

私がやりたいのは、MVC フレームワークが my のインスタンスを必要とするたびIResourceProviderにファクトリを使用するようにすることです。また、可能であればIoC.Release(provider)、それが完了したときに呼び出しまたは同様のことも行います。

IResourceProviderMVC フレームワークが尊重する方法で、カスタムのライフスタイルを細かく管理するにはどうすればよいですか?