Пример #1
0
        public void WriteElement(ref BssomWriter writer, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo, Object value)
        {
            if (value is null)
            {
                throw new ArgumentNullException(nameof(value));
            }

            IArray1ElementWriter array1ElementWriter = Array1ElementWriterContainers.GetArray1ElementWriter(offsetInfo.Array1ElementTypeIsNativeType, offsetInfo.Array1ElementType);

            array1ElementWriter.WriteObjectElement(ref writer, option, offsetInfo, value);
        }
Пример #2
0
        static Array1ElementWriterFactory()
        {
            Type t = typeof(T);

            if (t == typeof(object) || t == typeof(BssomValue) || t == typeof(BssomChar) || t == typeof(BssomBoolean) || t == typeof(BssomDateTime) || t == typeof(BssomDecimal) || t == typeof(BssomFloat) || t == typeof(BssomGuid) || t == typeof(BssomNumber))
            {
                _controller = (IArray1ElementWriter <T>)(object) ObjectArray1ElementWriter.Instance;
            }
            else
            {
                _controller = (IArray1ElementWriter <T>)Array1ElementWriterContainers.GetArray1ElementWriter(t);
            }
        }
Пример #3
0
 public static IArray1ElementWriter GetArray1ElementWriter(bool isNativeType, byte type)
 {
     if (!isNativeType)
     {
         if (type > BssomType.MinFixLenTypeCode && type <= BssomType.TimestampCode)
         {
             return(buildInTypeContainers[type - BssomType.MinFixLenTypeCode - 1]);
         }
     }
     else
     {
         if (type <= NativeBssomType.MaxCode)
         {
             IArray1ElementWriter writer = nativeTypeContainers[type];
             if (writer != null)
             {
                 return(writer);
             }
         }
     }
     return(BssomSerializationArgumentException.InvalidOffsetInfoFormat <IArray1ElementWriter>());
 }
Пример #4
0
        public Object ReadElement(ref BssomReader reader, BssomSerializerOptions option, BssomFieldOffsetInfo offsetInfo)
        {
            IArray1ElementWriter array1ElementWriter = Array1ElementWriterContainers.GetArray1ElementWriter(offsetInfo.Array1ElementTypeIsNativeType, offsetInfo.Array1ElementType);

            return(array1ElementWriter.ReadObjectElement(ref reader, option, offsetInfo));
        }