コード例 #1
0
        protected string GetHashString(object value)
        {
            if (EnableCaching)
            {
                if (!_cache4Object2Hash.ContainsKey(value))
                {
                    var hash = HashService.GetHashCode(value);

                    TraceService.VerboseFormat(0,
                                               "GetHashString() - cold hit, adding value to cache:[{0}] -> [{1}]",
                                               new object[] { value, hash },
                                               null);

                    _cache4Object2Hash.Add(value, hash);
                }
                else
                {
                    var hash = _cache4Object2Hash[value];

                    TraceService.VerboseFormat(0,
                                               "GetHashString() - hot hit, returning value from cache:[{0}] -> [{1}]",
                                               new object[] { value, hash },
                                               null);
                }

                return(_cache4Object2Hash[value]);
            }
            else
            {
                var hash = HashService.GetHashCode(value);

                TraceService.VerboseFormat(0,
                                           "GetHashString() - hot hit, returning value from cache:[{0}] -> [{1}]",
                                           new object[] { value, hash },
                                           null);

                return(hash);
            }
        }