Пример #1
0
        public static T Read <T>(string hexBuffer, CborOptions options = null)
        {
            options = options ?? CborOptions.Default;
            Span <byte>        buffer    = hexBuffer.HexToBytes();
            CborReader         reader    = new CborReader(buffer);
            ICborConverter <T> converter = options.Registry.ConverterRegistry.Lookup <T>();

            return(converter.Read(ref reader));
        }
Пример #2
0
        public static T Deserialize <T>(
            ReadOnlySpan <byte> buffer,
            CborOptions?options = null)
        {
            options ??= CborOptions.Default;
            CborReader         reader    = new CborReader(buffer);
            ICborConverter <T> converter = options.Registry.ConverterRegistry.Lookup <T>();

            return(converter.Read(ref reader));
        }
Пример #3
0
        public static object?Deserialize(
            Type objectType,
            ReadOnlySpan <byte> buffer,
            CborOptions?options = null)
        {
            options ??= CborOptions.Default;
            CborReader     reader        = new CborReader(buffer);
            ICborConverter cborConverter = options.Registry.ConverterRegistry.Lookup(objectType);

            return(cborConverter.Read(ref reader));
        }
Пример #4
0
        public static string Write <T>(T value, CborOptions options = null)
        {
            options = options ?? CborOptions.Default;

            using (ByteBufferWriter bufferWriter = new ByteBufferWriter())
            {
                CborWriter         writer    = new CborWriter(bufferWriter);
                ICborConverter <T> converter = options.Registry.ConverterRegistry.Lookup <T>();
                converter.Write(ref writer, value);
                return(BitConverter.ToString(bufferWriter.WrittenSpan.ToArray()).Replace("-", ""));
            }
        }
Пример #5
0
        public StructMemberConverter(CborConverterRegistry registry, IMemberMapping memberMapping)
        {
            MemberInfo?memberInfo = memberMapping.MemberInfo;

            if (memberInfo == null)
            {
                throw new CborException("MemberInfo must not be null");
            }

            MemberNameAsString = memberMapping.MemberName !;
            _memberName        = Encoding.UTF8.GetBytes(MemberNameAsString);
            _memberGetter      = GenerateGetter(memberInfo);
            _memberSetter      = GenerateSetter(memberInfo);
            _converter         = (ICborConverter <TM>)memberMapping.Converter !;
            _defaultValue      = (TM)memberMapping.DefaultValue !;
            _ignoreIfDefault   = memberMapping.IgnoreIfDefault;
            _requirementPolicy = memberMapping.RequirementPolicy;
        }
Пример #6
0
        public MemberConverter(CborConverterRegistry registry, IMemberMapping memberMapping)
        {
            MemberInfo?memberInfo = memberMapping.MemberInfo;

            if (memberInfo == null)
            {
                throw new CborException("MemberInfo must not be null");
            }

            _memberName            = Encoding.UTF8.GetBytes(memberMapping.MemberName !);
            _memberGetter          = GenerateGetter(memberInfo);
            _memberSetter          = GenerateSetter(memberInfo);
            _converter             = (ICborConverter <TM>)memberMapping.Converter !;
            _defaultValue          = (TM)memberMapping.DefaultValue !;
            _ignoreIfDefault       = memberMapping.IgnoreIfDefault;
            _shouldSerializeMethod = memberMapping.ShouldSerializeMethod;
            _lengthMode            = memberMapping.LengthMode;
            _requirementPolicy     = memberMapping.RequirementPolicy;
        }
Пример #7
0
 public MemberMapping <T> SetConverter(ICborConverter converter)
 {
     Converter = converter;
     return(this);
 }
 public ArrayConverter(CborOptions options)
 {
     _options       = options;
     _itemConverter = options.Registry.ConverterRegistry.Lookup <TI>();
 }
 public NullableConverter(CborOptions options)
 {
     this._cborConverter = options.Registry.ConverterRegistry.Lookup <T>();
 }
Пример #10
0
 /// <summary>
 /// Registers the converter.
 /// </summary>
 /// <param name="type">The type.</param>
 /// <param name="converter">The converter.</param>
 public bool RegisterConverter(Type type, ICborConverter converter)
 {
     return(_converters.TryAdd(type, converter));
 }
 public AbstractDictionaryConverter(CborOptions options)
 {
     _options        = options;
     _keyConverter   = options.Registry.ConverterRegistry.Lookup <TK>();
     _valueConverter = options.Registry.ConverterRegistry.Lookup <TV>();
 }
 public AttributeBasedDiscriminatorConvention(SerializationRegistry serializationRegistry, string memberName)
 {
     _serializationRegistry = serializationRegistry;
     _memberName            = Encoding.UTF8.GetBytes(memberName);
     _converter             = serializationRegistry.ConverterRegistry.Lookup <T>();
 }
 public AbstractCollectionConverter(CborOptions options)
 {
     _options       = options;
     _itemConverter = options.Registry.ConverterRegistry.Lookup <TI>();
 }