public RecordPerRowReferenceCollectionFieldWriter( RecordPerRowFieldSerializer parent, string fieldName, IReferenceRecordSerializer <TField> serializer) : base(parent, fieldName) { _serializer = serializer; }
protected RecordPerRowFieldSerializer( RecordPerRowFieldSerializer parent, string fieldName) { _writersCache = new List <object>(); _currentWriter = 0; _stream = parent._stream; _writersFactory = parent._writersFactory; _fieldNamespace = parent._fieldNamespace.SubName(fieldName); }
public RecordPerRowReferenceCollectionFieldSerializer(RecordPerRowFieldSerializer parent) { _parent = parent; }
public ICollectionFieldSerializer <TField> BuildCollectionFieldSerializer <TField>(RecordPerRowFieldSerializer parent) { Type fieldType = typeof(TField); Type collectionFieldSerializerType; if (fieldType.IsValueType) { collectionFieldSerializerType = typeof(RecordPerRowValueCollectionFieldSerializer <>) .MakeGenericType(fieldType); } else { collectionFieldSerializerType = typeof(RecordPerRowReferenceCollectionFieldSerializer <>) .MakeGenericType(fieldType); } object result = Activator.CreateInstance(collectionFieldSerializerType, parent) ?? throw new InvalidOperationException("CreateInstance returned null"); return((ICollectionFieldSerializer <TField>)result); }