public void ReadDynamicTravelTest() { var bytes = SerializationTestContext.GetFilledDataBlockBlob(); var stream = new MemoryStream(bytes); var visitor = new PackedDataReadVisitor(stream); var context = new DynamicTravellerContext(); var traveller = context.GetInstance<DataBlock>(); var graph = new DataBlock(); traveller.Travel(visitor, graph); var expected = DataBlock.Filled(); AssertAreEqual(expected, graph); }
public void ReadDynamicTravelTest() { var bytes = BinarySerializationTestContext.GetFilledDataBlockBlob(); var stream = new MemoryStream(bytes); var visitor = new PackedDataReadVisitor(stream); var context = new DynamicTravellerContext(); var traveller = context.GetInstance <DataBlock>(); var graph = new DataBlock(); traveller.Travel(visitor, graph); var expected = DataBlock.Filled(); graph.AssertEqualTo(expected); }
public DynamicTravellerBuilder(DynamicTravellerContext dtContext, ClassBuilder classBuilder, SerializableTypeProvider typeProvider, Type type) { _dtContext = dtContext; _classBuilder = classBuilder; _typeProvider = typeProvider; _type = type; _constructorBuilder = _classBuilder.DefineConstructor(typeof(IVisitArgsFactory)); _constructorBuilder.IL.Var.Load(_constructorBuilder.IL.Var.This()); _constructorBuilder.IL.CallBaseConstructor(typeof(object).GetConstructor(new Type[] { })); //_constructorBuilder.IL.Return(); _travelWriteMethod = _classBuilder.DefineOverloadMethod("Travel", typeof(void), new[] { typeof(IWriteVisitor), _type }); _travelReadMethod = _classBuilder.DefineOverloadMethod("Travel", typeof(void), new[] { typeof(IReadVisitor), _type }); var factory = new VisitArgsFactory(typeProvider, type); _dynamicTraveller = new DynamicTraveller(_classBuilder.Type, factory, _constructorBuilder.Reference, _travelWriteMethod.Method, _travelReadMethod.Method, dtContext.Members); }
public BinarySerializationTestContext() { _travellerContext = new DynamicTravellerContext(new SerializableTypeProvider(new SerializationReflectionInspector(), FactoryTypeProvider.Instance)); }
public SerializationEngine(DynamicTravellerContext context) : this(new IoCContainer(), new GraphTravellerCollection(context)) { }
public GraphTravellerCollection(DynamicTravellerContext context, IVisitArgsFactory visitArgsFactory) : this(t => context.GetInstance(t, visitArgsFactory)) { }
public GraphTravellerCollection(DynamicTravellerContext context) : this(t => context.GetInstance(t)) { }