List <byte> IConcreteAction.Serialize(object dataObject) { IPrimitive primitive = PrimitiveFactory.MakePrimitive(type); byte[] representBytes = primitive.GetByteStream(dataObject); return(representBytes.ToList()); }
object IConcreteAction.Deserialize(StreamExtractorHandler streamExtractor) { IPrimitive lenStrPrimitive = PrimitiveFactory.MakePrimitive(typeof(ushort)); ushort lenStr = (ushort)lenStrPrimitive.GetValueField(streamExtractor); lenStr *= 2; byte[] bytesRepresentString = streamExtractor(lenStr); object recordObject = Encoding.Unicode.GetString(bytesRepresentString); return(recordObject); }
private int[] RecoveryDimensional(StreamExtractorHandler streamExtractor) //восстановление измерений { byte rank = RankRecovery(streamExtractor); int[] lengths = new int[rank]; IPrimitive lengthPrimitive = PrimitiveFactory.MakePrimitive(typeof(ushort)); for (int dimension = 0; dimension < rank; dimension++) { lengths[dimension] = (ushort)lengthPrimitive.GetValueField(streamExtractor); } return(lengths); }
List <byte> IConcreteAction.Serialize(object dataObject) { var resultStream = new List <byte>(); string str = (string)dataObject; IPrimitive rankPrimitive = PrimitiveFactory.MakePrimitive(typeof(ushort)); byte[] rank = rankPrimitive.GetByteStream((ushort)str.Length); resultStream.AddRange(rank); byte[] data = Encoding.Unicode.GetBytes(str); resultStream.AddRange(data); return(resultStream); }
private int[] RecordAndExtractDimensional() { IPrimitive rankPrimitive = PrimitiveFactory.MakePrimitive(typeof(byte)); byte[] rank = rankPrimitive.GetByteStream((byte)array.Rank); resultStream.AddRange(rank); IPrimitive lengthPrimitive = PrimitiveFactory.MakePrimitive(typeof(ushort)); int[] lengths = new int[array.Rank]; for (int dimension = 0; dimension < array.Rank; dimension++) { lengths[dimension] = array.GetLength(dimension); byte[] bytesToWrite = lengthPrimitive.GetByteStream((ushort)lengths[dimension]); resultStream.AddRange(bytesToWrite); } return(lengths); }
private byte RankRecovery(StreamExtractorHandler streamExtractor) // восстановление числа измерений { IPrimitive rankPrimitive = PrimitiveFactory.MakePrimitive(typeof(byte)); return((byte)rankPrimitive.GetValueField(streamExtractor)); }
object IConcreteAction.Deserialize(StreamExtractorHandler streamExtractor) { IPrimitive primitive = PrimitiveFactory.MakePrimitive(type); return(primitive.GetValueField(streamExtractor)); }