public DynamicTravellerContext(SerializableTypeProvider typeProvider) { _typeProvider = typeProvider; _travellers = new Dictionary <Type, DynamicTraveller>(); _assemblyBuilder = new AssemblyBuilder(); Members = new DynamicTravellerMembers(); }
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 DynamicTravellerBuilder(DynamicTravellerContext dtContext, ClassBuilder classBuilder, SerializableTypeProvider typeProvider, Type type) { _dtContext = dtContext; _classBuilder = classBuilder; _typeProvider = typeProvider; _type = type; _constructorBuilder = _classBuilder.DefineConstructor(typeof(IVisitArgsFactory)); var baseConstructor = typeof(object).GetTypeInfo().GetConstructor(Type.EmptyTypes); var il = _constructorBuilder.IL; il.Load(ILPointer.This()); il.Emit(OpCodes.Call, baseConstructor); _travelWriteMethod = _classBuilder.DefineOverloadMethod("Travel", typeof(void), new[] { typeof(IWriteVisitor), _type }); _travelReadMethod = _classBuilder.DefineOverloadMethod("Travel", typeof(void), new[] { typeof(IReadVisitor), _type }); DynamicTraveller = new DynamicTraveller(_classBuilder.Type, _constructorBuilder.Reference, _travelWriteMethod.Method, _travelReadMethod.Method, dtContext.Members); }
public void SerializableTypeProvider_PrimitiveArraysProvided() { var serializableTypeProvider = new SerializableTypeProvider(); Assert.Contains(typeof(bool[]), serializableTypeProvider.SerializableTypes); Assert.Contains(typeof(byte[]), serializableTypeProvider.SerializableTypes); Assert.Contains(typeof(sbyte[]), serializableTypeProvider.SerializableTypes); Assert.Contains(typeof(char[]), serializableTypeProvider.SerializableTypes); Assert.Contains(typeof(decimal[]), serializableTypeProvider.SerializableTypes); Assert.Contains(typeof(double[]), serializableTypeProvider.SerializableTypes); Assert.Contains(typeof(float[]), serializableTypeProvider.SerializableTypes); Assert.Contains(typeof(int[]), serializableTypeProvider.SerializableTypes); Assert.Contains(typeof(uint[]), serializableTypeProvider.SerializableTypes); Assert.Contains(typeof(long[]), serializableTypeProvider.SerializableTypes); Assert.Contains(typeof(ulong[]), serializableTypeProvider.SerializableTypes); Assert.Contains(typeof(short[]), serializableTypeProvider.SerializableTypes); Assert.Contains(typeof(ushort[]), serializableTypeProvider.SerializableTypes); Assert.Contains(typeof(object[]), serializableTypeProvider.SerializableTypes); Assert.Contains(typeof(string[]), serializableTypeProvider.SerializableTypes); }
public GraphTypeFactory(SerializableTypeProvider provider) { _provider = provider; _graphTypes = new Dictionary <Type, IGraphType>(); }
public VisitArgsFactory(SerializableTypeProvider provider, Type type) { Provider = provider; SerializableType = provider.GetOrCreate(type); }
public GraphTypeFactory(SerializableTypeProvider provider) { _provider = provider; _graphTypes = new Dictionary<Type, IGraphType>(); }