問題タブ [resourcemanager]
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.
c# - 永続的なリソース マネージャー (IEnlistmentNotification) の回復
を実装してリソースマネージャーを作成していますIEnlistmentNotification。私は耐久性のある RM を作成しようとしていますが、いくつかの質問がありました。
IEnlistmentNotificationトランザクションごとにオブジェクトが必要ですか、それとも単一のIEnlistmentNotificationオブジェクトですべてのトランザクションを処理する必要がありますか?各トランザクションはそれ自体が必要になると思うので、トランザクションごとに準備/コミット/ロールバックを実行できます。
リカバリ ファイルはどのように処理されますか?
私の想定では、トランザクションで発生するすべてのものが、準備中に回復ファイルに書き込まれるということです。
各トランザクションの情報をどのように分離できますか? 各トランザクションには個別のファイルがあるか、単一のファイルに回復操作ごとに何らかのトランザクション ID があると思います。
リカバリが発生している場合
Transaction.Current.TransactionInformation.DistributedIdentifier/LocalIdentifier、クラッシュ前と同じですか? したがって、これらの ID の 1 つを使用して、リカバリー中にトランザクションを識別することができます。回復はどのように起こりますか?
内部でリソース マネージャを使用している場合
TransactionScope、スコープの途中でシステムがクラッシュ (プラグが抜かれるなど) した場合、システムがバックアップを開始したときにどのように回復しますか? スコープを持つコードを実行していたプロセスが、システムのクラッシュなどについて知っていると思いますか? その場合、実際にリカバリを処理するためにどのシステム/プログラム/サービスがセットアップされていますか?
c# - ResourceManager - 埋め込みリソース ファイルに必要なベース名を見つける方法は?
次のように、外部ファイルからリソースをロードするライブラリがあります。
ここで、読み込みを外部ファイルから埋め込みリソースに変更したいと思います。「.resources」ファイルをプロジェクトに添付し、そのビルド アクションを「埋め込みリソース」に変更しました。次のようにロードします。
これはうまくコンパイルされます。ただし、実行時にアプリケーションは次のエラーを報告します。
指定されたカルチャまたはニュートラル カルチャに適したリソースが見つかりませんでした。コンパイル時に "Strings.3.resources" がアセンブリ "TestApp.Resources" に正しく埋め込まれているかリンクされていること、または必要なすべてのサテライト アセンブリが読み込み可能で完全に署名されていることを確認してください。
これは、渡した名前に関係なく発生するため、埋め込んだばかりのリソース ファイルの正しいベース名を見つける方法を質問します。
c# - ResourceManager の使用
C# クラスで ResourceManager を使用しようとしていますが、ResourceManager クラスの新しいインスタンスを作成するときにベース名を何に置き換えるかがわかりません。
上記のプロジェクトで参照されるリソース ファイルを含む別のプロジェクトがあり、次のように名前が付けられています。
- Resources.resx
- Resources.es-ES.resx
次のようなコード スニペットがある場合、英語版またはスペイン語版のリソースを使用する場合、ベース名を何に置き換えればよいですか?
トムが提案したアプローチを試しましたが、悪名高いエラーが発生しています
指定されたカルチャまたはニュートラル カルチャに適したリソースが見つかりませんでした。
私のソリューションには 2 つのプロジェクトがあり、プロジェクト YeagerTech は Web アプリケーションであり、プロジェクト YeagerTechResources にはすべてのリソースが含まれています。Project YeagerTech には YeagerTechResources への参照があります。
リソース マネージャーを作成するときの構文は次のとおりです。
明らかに、それは正しくありません。
YeagerTechResources プロジェクトのリソース ファイルでは、BuildAction が Embedded Resource に設定されています。
リソース ファイルの名前は、Resources.resx と Resources.es-ES.resx です。
リソースマネージャーをインスタンス化するときに、プロジェクトとリソースファイル名に基づいて使用する正確な構文を誰かが簡単に教えてくれれば、それを大いに感謝します...
私はこれを解決するために考えられるすべてのことをしましたが、できません....
これは、ここで解決する最後の試みです...
上記のコードを実行した後、次のエラーが発生します。
指定されたカルチャまたはニュートラル カルチャに適したリソースが見つかりませんでした。コンパイル時に「YeagerTechResources.Resources.resources」がアセンブリ「YeagerTech」に正しく埋め込まれているかリンクされていること、または必要なすべてのサテライト アセンブリがロード可能で完全に署名されていることを確認してください。
HTML マークアップでリソースをまったく問題なく使用できますが、コントローラーで C# コードにアクセスすると、上記のエラーが発生し続けます。
私のプロジェクトに基づいて必要な正確な構文の助けをいただければ幸いです。
c# - Resourcemanagers リソースセットの値が正しくありません
ローカライズされた resx リソースファイルを使用する wpf/prism 4 アプリケーションを開発しています。いくつかのデバッグの後 (期待どおりに動作しませんでした)、リソースマネージャーのすべてのリソースセットが同じ値を持っていることがわかりました。デフォルトの loc.resx の値。


私の質問は次のとおりです。何がうまくいかないのですか?
前もって感謝します
c# - 実行時に特定のリソース キーのすべてのリソース値のスナップショットを作成する
Web サイトから送信されたジョブを処理するジョブ サーバーがあります。Web サイトのアセンブリはパッケージ化され、ジョブの一部としてジョブ サーバーに送信されます (すべてのサテライト リソース アセンブリを含む)。
これらのアセンブリは、ジョブ処理が開始される前に Assembly.Load( byte[] ) を介してロードされます。
ジョブの処理中に、リソース文字列 (つまり、検証メッセージ) のスナップショットを作成するポイントに到達します。検証ルール/メッセージは時間の経過とともに変化する可能性があり、以前に処理されたジョブ/メッセージを表示するために戻ってきた場合、「最新の」リソース文字列を表示したくないため、単にリソース キーを保存することはできません。表示されるジョブ処理時の値が必要です。また、Web サイトのスレッドが実行されている適切なカルチャでメッセージを表示できるように、サポートされている各カルチャのメッセージのスナップショットが必要です。
メッセージの取得を試行するために、Web サイト アセンブリはサポートされているロケールを指定するため、ジョブ サーバーで次のようにして Web サイト アセンブリの ResourceManager を作成します。
これは正常に機能し、ResourceManager を取得しますが、XElement validationRule と string[] ロケールが指定されている場合、次のコードは「機能しません」:
基本的に、どの CultureInfo を渡しても、既定の (en-US) カルチャのメッセージが表示されます。
AppDomain.CurrentDomain.GetAssemblies() は、読み込まれた Web サイト アセンブリとサテライト アセンブリの両方を示します。
{ABCCorp.ServiceModel, Version=6.0.4497.18334, Culture=neutral, PublicKeyToken=null} System.Reflection.Assembly {System.Reflection.RuntimeAssembly} {ABCCorp.ServiceModel.resources, Version=6.0.4497.18334, Culture=fr-FR, PublicKeyToken=null} System.Reflection.Assembly {System.Reflection.RuntimeAssembly}
しかし、ウォッチ ウィンドウで次のことを試してみると (上記のコードと同じ)、en-US バージョンが表示されます。
rm.GetString( "ResourceKey", new CultureInfo( "fr-FR" ) )
最後に、おそらく私たちは LINQPad に精通しています :) 次のスクリプトは「動作」します。ABCCorp の ServiceModel.dll またはサテライト dll への参照はありません。
どんな提案でも大歓迎です。
更新: ジョーからの提案に基づいて、これが最終的なコードです。byte[] コンテンツは、Web サイト アセンブリと、存在する場合はすべてのサテライト リソース アセンブリを含む zip ファイルです。
toolbar - Ext.NET GridPanel のトップバー ツールバー ボタンにより、DirectEvent で内部サーバー エラー 500 が発生する コード ビハインドでは発生しない
VS2008、ASP.NET で Ext.NET を使用しています。解決策を見つけることができなかった固有の問題があります。
GridPanel があり、TopBar には削除ボタンがあります。グリッドは RowSelection モデルを使用します。行を選択した後、ユーザーは [削除] ボタンをクリックします。確認のためにクライアント側イベントが発生します。コード スニペットは次のとおりです。
しかし、問題は、[はい] をクリックした後に、基本的に 500 内部サーバー エラーである次のメッセージが表示されることです。
以下は私がフィドラーで見つけたものです:
結果 プロトコル ホスト URL 本文 キャッシュ コンテンツ タイプ プロセス コメント カスタム
1 500 HTTP onyx /pages/sanction.aspx?_dc=1337773867270 4,268 private text/html; charset=utf-8 クローム:920
コードビハインドのイベントが発生しないため、VS2008 のデバッガーは動作しません。ツールバーの他のボタンは正常に機能します。ここで何が欠けているか知っている人はいますか?
c# - Web 要求ごとに、静的にキャッシュされた ResourceManager または新しいインスタンスを使用する必要がありますか? それは問題ですか?
.Designer.csで生成されたクラス( )で「キャッシュされたResourceManagerインスタンス」を使用する場合と比較して、ResourceManagerリクエストごとに新しい.NETを作成することのパフォーマンス(またはその他)への影響は何ですか?new ResourceManger(myResourceType.FullName, myResourceType.Assembly)MyResourceType.ResourceManager
.resx ファイルを使用して ASP.NET MVC 3 アプリケーションのコンテキストで作業しています。
編集: 新しいオブジェクトにメモリを割り当てるコスト以外の意味に興味があります。
編集: の MSDN ドキュメントを見るとResourceManager.ReleaseAllResources、次のように記載されています。
This method will shrink the working set in a running application. Any future resource lookups on this ResourceManager will be as extensive as the first lookup, since it will need to search and load resources again.
これは、リソース セットの最初のオープンにコストがかかることを暗示しているように思われます。これは、リクエストごとに新しいマネージャーを作成するとコストがかかる可能性があることを示唆しています。ただし、ドキュメントでは、リソース マネージャーの有効期間/スコープに関するベスト プラクティスは提案されていません。
c# - CultureInfoが指定されているにもかかわらず、Resourcemanagerが同じリソースを返しています
非常に単純なことで、私はそれを機能させることができません。dllをグローバル化したいので、リソースファイルとResourceManagerを使用しています。
私は次のようにresourcemanagerを呼び出します。
このような文字列を取得します
そして、同じ文字列の4倍を返します。私のファイルは
すべてのファイル設定は同じですが、前述のように、デフォルトファイルのリソースのみが使用されます。
私はここで何を見落としていますか?
actionscript-3 - Flex resourceManagerは、あるファイルでは完全に機能し、別のファイルではまったく機能しません
一部のローカリゼーションにFlexでresourceManagerを使用しようとしています。私が試した最初のファイルでは正常に動作するという奇妙な問題がありますが、2番目のファイルではコンパイルすらできません。
両方のファイルには
上部と
クラス定義の上。最初のものは正常にコンパイルされ、実行時にリソースからテキストを正しくプルします。
2番目のファイル(同じプロジェクトにありますが、フォルダーが異なります)はコンパイルされず、resourceManagerに言及するたびに、「1120:未定義のプロパティresourceManagerへのアクセス」というエラーが発生します。
2つの異なる用途の場合:
動作するファイル内:
そして、機能しないファイル:
どちらのファイルでも、私がしたこととは何も違うことは考えられません。
編集、解決済み:
resourceManagerは、すべてのUIComponentサブクラスで定義されています。動作したファイルはComboBoxをインポートしました。そうしなかったファイル。これらのファイルでは、次のように呼び出すことで機能させることができます。
詳細については、http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/resources/IResourceManager.htmlをご覧ください。
c# - ResourceManagerはすべてのカルチャを自動的にロードしますか?
私はクラスライブラリを持っています-それをフレームワークと呼びます。assemblyinfo.csには、次のものがあります。
\ Resources \ディレクトリの下に、FrameworkResources.resxとFrameworkResources.fr-FR.resxがあります。
ヘルパークラスでは、これをリソースマネージャーとして使用しています。
コードでは、私がこのようなことをすると:
CurrentCultureにデバッグしてカーソルを合わせると、それ(およびUICulture)がfr-FRに設定されますが、これは常にデフォルトの英語メッセージを返します。fr-FRリソースファイルからのフランス語メッセージではありません。
ResourceManagerはそれを自動的に接続する必要がありますか、それとも現在のカルチャをクエリするコードを記述してから、適切なファイルを開く必要がありますか?それが現在の文化であるため、Resource Managerがfr-FR文字列を取得することを知っていると仮定するのは間違っていますか?
なぜこれが機能しないのかわかりません。
更新: 私は衛星アセンブリを持っているので、コンパイル部分はうまくいくと信じています。問題は私のリソースマネージャーにあると思います。ResourceSetsを使用し、ResourceManagerを次のように明示的に使用してみました。
その結果、次のようになります。
したがって、すべてが整っていても、私のリソースマネージャーは単にそれらの衛星アセンブリを調べようとはしていません。そして明確にするために、これらのアセンブリには、上記の文字列の翻訳バージョンがあります。したがって、カルチャ固有のファイルではなく、デフォルトのFrameworkResources.resxファイルから確実に読み取っています。