public override void Read(Stream stream) { _elementType = (SerializeTypeEnum)stream.ReadByte(); var elementType = SerializeTypes.GetType(_elementType); _rank = stream.ReadInt32(); _dimensions = new int[_rank]; for (int i = 0; i < _rank; i++) { _dimensions[i] = stream.ReadInt32(); } int currDim = 0; int count = 1; var ind = new int[_rank]; for (int i = 0; i < _rank; i++) { count *= _dimensions[i]; } _values = new object[count]; for (int i = 0; i < count; i++) { ind = MySerializer.GetNewArrayIndexes(_rank, _dimensions, ind, ref currDim); _values[i] = stream.ReadPrimitiveOrStringType(elementType); } }
public override void Read(Stream stream) { var assembly = stream.ReadString(); var name = stream.ReadString(); _arrayType = Assembly.Load(assembly).GetType(name); _rank = stream.ReadInt32(); _dimensions = new int[_rank]; int count = 1; for (int i = 0; i < _rank; i++) { _dimensions[i] = stream.ReadInt32(); count *= _dimensions[i]; } int currDim = 0; var ind = new int[_rank]; _elementsInfo = new List <ISerializeInstanceInfo>(); for (int i = 0; i < count; i++) { ind = MySerializer.GetNewArrayIndexes(_rank, _dimensions, ind, ref currDim); var info = this.Context.GetUninitializedTypeInfo((SerializeTypeEnum)stream.ReadByte()); info.Read(stream); _elementsInfo.Add(info); } }
internal ArrayOfPrimitivesInfo(Array obj, ISerializationContext ctx) : base(obj, ctx) { _elementType = SerializeTypes.GetTypeEnum(obj.GetType().GetElementType()); _rank = obj.Rank; _dimensions = new int[_rank]; for (int i = 0; i < _rank; i++) { _dimensions[i] = obj.GetLength(i); } int[] ind = new int[_rank]; int currDim = 0; int count = 1; for (int i = 0; i < _rank; i++) { count *= _dimensions[i]; } this._values = new object[count]; for (int i = 0; i < count; i++) { ind = MySerializer.GetNewArrayIndexes(_rank, _dimensions, ind, ref currDim); _values[i] = obj.GetValue(ind); } }
public static void Main(String [] args) { Point p1 = new Point(2, 3); String str1 = MySerializer.Serialize(p1); Console.WriteLine(str1); Point newPt = MySerializer.Deserialize <Point>(str1); Console.WriteLine(newPt); }
public static void Main(String [] args) { Point p1 = new Point(2, 3); String str1 = MySerializer.Serialize(p1); Console.WriteLine(str1); Point newPt = MySerializer.Deserialize <Point>(str1); Console.WriteLine(newPt); Student s1 = new Student("Test Student", 3.5, false); String str2 = MySerializer.Serialize(s1); Console.WriteLine(str2); Student newSt = MySerializer.Deserialize <Student>(str2); Console.WriteLine(newSt); }
static void Main(string[] args) { var serializer = new MySerializer(); var stream = new MemoryStream(); var lst = new List <object>(); //var apple = new Apple<int>(Colour.Green, 4); //lst.Add(new int[,,] { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } }); //lst.Add(apple); //lst.Add(ConsoleColor.Yellow); //lst.Add("abcd"); //lst.Add(4321); var x = new int[, , ] { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } }; //Apple[] apples = new Apple[2] { new Apple(Colour.Yellow, 9), new Apple(Colour.Red, 10) }; var l = new LinkedList <Apple>(); var app1 = new Apple(Colour.Yellow, 9); var app2 = new Apple(Colour.Green, 7); var app3 = new Apple(Colour.Yellow, 5); var app4 = new Apple(Colour.Red, 8); var app5 = new Apple(Colour.Yellow, 2); var n1 = l.AddFirst(app1); var n2 = l.AddAfter(n1, app3); var n3 = l.AddBefore(n2, app2); var n4 = l.AddAfter(n3, app4); var n5 = l.AddAfter(n4, app5); Colour c = Colour.Yellow; var d = 2424.655; serializer.Serialize(l, stream); stream.Position = 0; var r = serializer.Deserialize(stream); }
public override object Get(List <ISerializeInstanceInfo> instanceInfos) { var arr = Array.CreateInstance(SerializeTypes.GetType(_elementType), _dimensions); this.Instance = arr; int count = 1; var ind = new int[_rank]; for (int i = 0; i < _rank; i++) { count *= _dimensions[i]; } int currDim = 0; for (int i = 0; i < count; i++) { ind = MySerializer.GetNewArrayIndexes(_rank, _dimensions, ind, ref currDim); arr.SetValue(_values[i], ind); } return(arr); }
public override object Get(List <ISerializeInstanceInfo> instanceInfos) { var objType = Assembly.Load(_arrayType.Assembly.FullName).GetType(_arrayType.FullName); var arr = Array.CreateInstance(objType, _dimensions); this.Instance = arr; int currDim = 0; int count = 1; var ind = new int[_rank]; for (int i = 0; i < _rank; i++) { count *= _dimensions[i]; } for (int i = 0; i < count; i++) { ind = MySerializer.GetNewArrayIndexes(_rank, _dimensions, ind, ref currDim); arr.SetValue(_elementsInfo[i].Get(instanceInfos), ind); } return(arr); }
internal ArrayOfByRefInfo(Array obj, ISerializationContext ctx) : base(obj, ctx) { _rank = obj.Rank; _arrayType = obj.GetType().GetElementType(); _dimensions = new int[_rank]; for (int i = 0; i < _rank; i++) { _dimensions[i] = obj.GetLength(i); } int[] ind = new int[_rank]; int currDim = 0; int count = obj.Length; _elementsInfo = new List <ISerializeInstanceInfo>(); for (int i = 0; i < count; i++) { ind = MySerializer.GetNewArrayIndexes(_rank, _dimensions, ind, ref currDim); _elementsInfo.Add(ctx.GetInstanceInfo(obj.GetValue(ind))); } }