Example #1
0
        internal TBox Get(MethodSearch search)
        {
            lock (_dictionaryLock) {
                var sig = search.ToString();
                if (_methodInfoBoxes.ContainsKey(sig))
                {
                    return(_methodInfoBoxes[sig]);
                }

                return(default(TBox));
            }
        }
Example #2
0
        internal TBox GetOrAdd(MethodSearch search, Func <TBox> box)
        {
            lock (_dictionaryLock) {
                var sig = search.ToString();
                if (_methodInfoBoxes.ContainsKey(sig))
                {
                    return(_methodInfoBoxes[sig]);
                }

                _methodInfoBoxes.Add(sig, box.Invoke());
                return(_methodInfoBoxes[sig]);
            }
        }
Example #3
0
        internal TBox Add(MethodSearch search, TBox box)
        {
            lock (_dictionaryLock) {
                var sig = search.ToString();
                if (_methodInfoBoxes.ContainsKey(sig))
                {
                    throw new Exception("A Mehod with same Key already exists!");
                }
                else
                {
                    _methodInfoBoxes.Add(sig, box);
                }


                return(_methodInfoBoxes[sig]);
            }
        }