私はモバイルアプリケーション用のUIフレームワークを構築しており、UIグラフィックスの管理に関する質問があります。C#より良いUIグラフィックスの管理
今はすべてのグラフィックを埋め込みリソースとして保存しています。しかし、プロジェクトのGUI部分は3つの異なるProjectsとNameSpaceに分離されており、それぞれがグラフィックを組み込みリソースとして含んでいます。プロジェクトの1つは基本型であり、他の2つのプロジェクトはネームスペースとアセンブリからのリソースと第3(基本)名前空間とアセンブリからのリソースを必要とします。
私がやっていることはリソースがファイル名で要求されると、3つのプロジェクトのAssemblyオブジェクトのGetManifestResourceNamesのリストを順番に並べ替えて並べ替え、ファイル名を含む最初の文字列を検索します。私は各文字列のためにこの文字列を取得するのに11-14ミリ秒かかると気づいています!すべてが言われて完了したら、私はリソース名の検索だけで60-100ミリ秒を見ています
ファイル名だけを使ってプロジェクトとネームスペース間でリソースを動的に見つける良い方法があるはずです。これについての助けがあれば素晴らしいでしょう!
また、リソースを埋め込むことは制約ではありません。 ERを伴わない優れたソリューションがあれば、それは素晴らしいことでしょう!
ありがとうございました!だから、どのように辞書を設定することをお勧めしますか?イメージ名とアセンブリのキーは値ですか? IDKの大きさAssemblyオブジェクトは小さければ(静的オブジェクトへのポインタ)、それは大丈夫ですが、巨大な場合は、それが.netCFであるために32 MBしかありません。 –
しようとしていますファイル名に基づいてオブジェクトを取得またはキャッシュしますか? 'Dictionary'はそれを行います:辞書を見るだけで、あなたのオブジェクトはマイクロ秒単位になります:) –
ありがとうございます。私が尋ねるのは、DictionaryのようにDictionaryを設定し、Assemblyオブジェクトがポインタだけだった場合、またはそれが非常に大きなオブジェクトだった場合です。これは、ヒープのサイズが非常に限られているためです。そのため、私は実際のImageオブジェクトをキャッシュしていません。 –