public SqlColumnInfo(MemberInfo memberInfo, string columnName, IMemberConverter converter, ISerializationTypeMapping typeMapping) : this(typeMapping, columnName, converter) { if (memberInfo == null) { throw new ArgumentNullException("memberInfo"); } this.memberInfo = memberInfo; }
public ObjectConverter(CborOptions options) { _options = options; _registry = options.Registry; _objectMapping = _registry.ObjectMappingRegistry.Lookup <T>(); _memberConvertersForWrite = new List <IMemberConverter>(); foreach (IMemberMapping memberMapping in _objectMapping.MemberMappings) { IMemberConverter memberConverter = memberMapping.GenerateMemberConverter(); if (memberMapping.CanBeDeserialized || _objectMapping.IsCreatorMember(memberConverter.MemberName)) { _memberConvertersForRead.Add(memberConverter.MemberName, memberConverter); if (memberConverter.RequirementPolicy == RequirementPolicy.AllowNull || memberConverter.RequirementPolicy == RequirementPolicy.Always) { _requiredMemberConvertersForRead.Add(memberConverter); } } if (memberMapping.CanBeSerialized) { _memberConvertersForWrite.Add(memberConverter); } } _isInterfaceOrAbstract = typeof(T).IsInterface || typeof(T).IsAbstract; _isStruct = typeof(T).IsStruct(); if (!_isInterfaceOrAbstract && !_isStruct && _objectMapping.CreatorMapping == null) { ConstructorInfo?defaultConstructorInfo = typeof(T).GetConstructor( BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, null, Type.EmptyTypes, null); if (defaultConstructorInfo == null) { throw new CborException($"Cannot find a default constructor on type {typeof(T)}"); } _constructor = defaultConstructorInfo.CreateDelegate <T>(); } _discriminatorConvention = _registry.DiscriminatorConventionRegistry.GetConvention(typeof(T)); }
public SqlColumnInfo(ISerializationTypeMapping typeMapping, string columnName, IMemberConverter converter) { if (string.IsNullOrEmpty(columnName)) { throw new ArgumentNullException("columnName"); } if (converter == null) { throw new ArgumentNullException("converter"); } if (typeMapping == null) { throw new ArgumentNullException("typeMapping"); } name = columnName; this.converter = converter; this.typeMapping = typeMapping; }
public static MemberConverters Create(JsonSerializerOptions options, IObjectMapping objectMapping) { MemberConverters converters = new MemberConverters(); if (options.PropertyNameCaseInsensitive) { converters.ForReadAsString = new Dictionary <string, IMemberConverter>(StringComparer.OrdinalIgnoreCase); } converters.ExtensionData = objectMapping.ExtensionData; foreach (IMemberMapping memberMapping in objectMapping.MemberMappings) { IMemberConverter memberConverter = memberMapping.GenerateMemberConverter(); if (memberMapping.CanBeDeserialized || objectMapping.IsCreatorMember(memberConverter.MemberName)) { if (options.PropertyNameCaseInsensitive) { converters.ForReadAsString.Add(memberConverter.MemberNameAsString, memberConverter); } converters.ForRead.Add(memberConverter.MemberName, memberConverter); if (memberConverter.RequirementPolicy == RequirementPolicy.AllowNull || memberConverter.RequirementPolicy == RequirementPolicy.Always) { converters.RequiredForRead.Add(memberConverter); } } if (memberMapping.CanBeSerialized) { converters.ForWrite.Add(memberConverter); } } return(converters); }