public bool TryGetDescriptor(int value, out MSSQLTypeDesc descriptor)
 {
     if (value <= short.MaxValue)
     {
         return _idDictionary.TryGetValue((short) value, out descriptor);
     }
     descriptor = null;
     return false;
 }
 /// <summary>
 ///     Add desc
 /// </summary>
 /// <param name="desc"></param>
 /// <param name="names"></param>
 /// <exception cref="ArgumentNullException">Argument is null.</exception>
 void ITypeDictionary.AddDesc(MSSQLTypeDesc desc, List<string> names)
 {
     _idDictionary.Add(desc.Id, desc);
     if (!desc.IsDerived)
     {
         _nativeTypeDictionary.Add(desc.BaseType, desc);
     }
     if (ReferenceEquals(names, null))
     {
         return;
     }
     foreach (var name in names)
     {
         _nameDictionary.Add(name, desc);
     }
 }
 public bool TryGetDescriptor(short value, out MSSQLTypeDesc descriptor)
 {
     return _idDictionary.TryGetValue(value, out descriptor);
 }
 public bool TryGetDescriptor(string typeName, out MSSQLTypeDesc descriptor)
 {
     return _nameDictionary.TryGetValue(typeName, out descriptor);
 }