internal RestoredWorkItemDictionary GetRestoredWorkItemDictionary(Type item_type) { lock (work_item_type2work_item_dictionary) { RestoredWorkItemDictionary wid; if (!work_item_type2work_item_dictionary.TryGetValue(item_type, out wid)) { if (!work_item_type_name2work_item_types.ContainsKey(item_type.Name)) { throw new Exception("Type " + item_type + " is not derivative of WorkItem"); } wid = new RestoredWorkItemDictionary(item_type); work_item_type2work_item_dictionary[item_type] = wid; } return(wid); } }
internal SingleValueWorkItemDictionary <WorkItemT, ValueT> GetSingleValueWorkItemDictionary_ <WorkItemT, ValueT>() where WorkItemT : SingleValueWorkItem <ValueT> { RestoredWorkItemDictionary wid = GetRestoredWorkItemDictionary(typeof(WorkItemT)); return(wid.Get <WorkItemT, ValueT>()); }
internal WorkItemDictionary <WorkItemT> GetWorkItemDictionary_ <WorkItemT>() where WorkItemT : WorkItem { RestoredWorkItemDictionary wid = GetRestoredWorkItemDictionary(typeof(WorkItemT)); return(wid.Get <WorkItemT>()); }