static IBssMapKeyStaticResolverCache() { if (BssMapKeyResolverProvider.TryGetBssMapKeyResolver(typeof(T), out IBssMapKeyResolver convertor)) { Instance = (IBssMapKeyResolver <T>)convertor; } else { BssomSerializationTypeFormatterException.BssomMapKeyUnsupportedType(typeof(T)); } }
static BssMapObjMarshalReader() { if (typeof(TKey) == typeof(object)) { readKeyFunc = GetObjectKey; } else { staticKeyResolver = BssMapKeyResolverProvider.GetAndVertiyBssMapKeyResolver <TKey>(); readKeyFunc = GetKey; } }
public static bool TryGetBssMapKeyResolver(Type keyType, out IBssMapKeyResolver mapKeyConvertor) { return(bssMapKeys.TryGetValue(keyType, out mapKeyConvertor)); }
private static TKey GetObjectKey(bool isNativeType, byte keyType, BssmapAnalysisStack stack, byte valueByteCount) { IBssMapKeyResolver convert = BssMapKeyResolverProvider.GetAndVertiyBssMapKeyResolver(isNativeType, keyType); return((TKey)convert.ReadMap2Key(stack.ToUlongs((byte)valueByteCount))); }