Пример #1
0
        public static FieldCoder[] Get(int coderVersion, Type type, int version, IFieldCodeable fieldCodeAble)
        {
            var key = Tup.Create(coderVersion, type, version);

            FieldCoder[] fieldCoderArray;
            lock (s_lock)
            {
                if (!s_fieldCoderArrayMap.TryGetValue(key, out fieldCoderArray))
                {
                    fieldCoderArray = fieldCodeAble.GetFieldCoders(coderVersion)
                                      .OrderBy(fc => fc.Order)
                                      .Where(fc => fc.MinVersion <= version && version <= fc.MaxVersion)
                                      .ToArray();
                    s_fieldCoderArrayMap[key] = fieldCoderArray;
                }
            }
            return(fieldCoderArray);
        }
Пример #2
0
        public static FieldCoderMap Get(int coderVersion, Type type, int version, IFieldCodeable fieldCodeAble)
        {
            var           key = Tup.Create(coderVersion, type, version);
            FieldCoderMap fieldCoderMap;

            lock (s_lock)
            {
                if (!s_fieldCoderMapMap.TryGetValue(key, out fieldCoderMap))
                {
                    fieldCoderMap = new FieldCoderMap();
                    var fieldCoders = fieldCodeAble.GetFieldCoders(coderVersion)
                                      .Where(fc => fc.MinVersion <= version && version <= fc.MaxVersion);
                    foreach (var fc in fieldCoders)
                    {
                        fieldCoderMap[fc.Name] = fc.Code;
                    }
                    s_fieldCoderMapMap[key] = fieldCoderMap;
                }
            }
            return(fieldCoderMap);
        }