一般的な辞書は次のとおりです。
public class ConcurrentDictionary<TKey, TValue> : IDictionary<TKey, TValue>
また、特定の辞書は次のようになります。
var container = new ConcurrentDictionary<string, Unit>();
var container = new ConcurrentDictionary<string, CustomUnitClass>();
これらの特別な辞書(異なるパラメーターを使用)は、アプリケーション状態で追加されました。
HttpContext.Current.Application[key] = container;
アプリケーションの状態からアイテムを取得すると(ここの何人かの人々がそれについて私を助けてくれました;彼らに感謝します)、私はこのようにタイプがConcurrentDictionaryであるかどうかをチェックすることができます:
object d = HttpContext.Current.Application[i];
if (d.GetType().GetGenericTypeDefinition() == typeof(ConcurrentDictionary<,>))
そして最後のポイントが残されました-オブジェクトdをジェネリックConcurrentDictionaryにキャストする方法:
ConcurrentDictionary<?, ?> unit = d as ConcurrentDictionary<?, ?>;
次のように特定のキャストを使用したくありません。
ConcurrentDictionary<string, Unit> unit = d as ConcurrentDictionary<string, Unit>;
2番目のパラメーターは別のタイプにすることができるためです。
前もって感謝します。