Пример #1
0
 protected virtual void AddExtensionData(Extension extension, T extensionData)
 {
     using (var locker = ExtensionDatas.Lock())
     {
         if (!locker.ContainsKey(extension))
         {
             locker[extension] = new List <T>();
         }
         locker[extension].Add(extensionData);
     }
 }
Пример #2
0
        public T GetFirstOrDefaultExtensionData(IBundle bundle)
        {
            T data = default(T);

            ExtensionDatas.ForEach(delegate(KeyValuePair <Extension, List <T> > item) {
                if (item.Key.Owner.Equals(bundle) && (item.Value.Count > 0))
                {
                    data = item.Value[0];
                }
            });
            return(data);
        }
Пример #3
0
        public List <T> GetExtensionDatas(IBundle bundle)
        {
            var result = new List <T>();

            ExtensionDatas.ForEach(delegate(KeyValuePair <Extension, List <T> > item) {
                if (item.Key.Owner.Equals(bundle))
                {
                    result.AddRange(item.Value);
                }
            });
            return(result);
        }
Пример #4
0
 protected virtual void ClearExtensionDatas()
 {
     ExtensionDatas.ForEach(item => item.Value.Clear());
     ExtensionDatas.Clear();
 }
Пример #5
0
 protected virtual void RemoveExtensionDatas(Extension extension)
 {
     ExtensionDatas.Remove(extension);
 }