public VisualizerData(object o, Config?config = null) { Config = config ?? new Config(); if (!Config.Path.IsNullOrWhitespace()) { o = ((Expression)ResolvePath(o, Config.Path)).ExtractValue(); } Source = WriterBase.Create(o, Config.Formatter, Config.Language, out var pathSpans).ToString(); Root = new ExpressionNodeData(o, ("", ""), this, pathSpans, false); }
public void Serialize(WriterBase writer, object graph, Type expectedType) { try { GraphWriter graphWriter = new GraphWriter(this.TypeBinder, writer, this.SurrogateSelector, this.Context, this.WellKnownContents); graphWriter.Serialize(graph, expectedType); } catch (Exception inner) { throw new SerializationException(inner.Message, inner); } }
internal static WriterBase WritePrimitive(WriterBase writer, object primitiveObj, TypeCode code) { switch (code) { case TypeCode.Boolean: return(writer.Write((Boolean)primitiveObj)); case TypeCode.Byte: return(writer.Write((Byte)primitiveObj)); case TypeCode.Char: return(writer.Write((Char)primitiveObj)); case TypeCode.DateTime: return(writer.Write((DateTime)primitiveObj)); case TypeCode.Decimal: return(writer.Write((Decimal)primitiveObj)); case TypeCode.Double: return(writer.Write((Double)primitiveObj)); case TypeCode.Int16: return(writer.Write((Int16)primitiveObj)); case TypeCode.Int32: return(writer.Write((Int32)primitiveObj)); case TypeCode.Int64: return(writer.Write((Int64)primitiveObj)); case TypeCode.SByte: return(writer.Write((SByte)primitiveObj)); case TypeCode.Single: return(writer.Write((Single)primitiveObj)); case TypeCode.String: return(writer.Write((String)primitiveObj)); case TypeCode.UInt16: return(writer.Write((UInt16)primitiveObj)); case TypeCode.UInt32: return(writer.Write((UInt32)primitiveObj)); case TypeCode.UInt64: return(writer.Write((UInt64)primitiveObj)); } return(writer); }
public void ReaderBase_ReadHeader_InvalidDataExceptions() { var stream = new MemoryStream(); var writer = new WriterBase(stream, SerializationPolicy.Default); writer.WriteHeader(); var bytes = stream.ToArray(); // AD 1.0.0.0 ... bytes[0] = b('A'); Assert.ThrowsException <InvalidDataException>(() => new ReaderBase(new MemoryStream(bytes), SerializationPolicy.Default).ReadHeader()); bytes[0] = b('B'); // BD 0.9.0.0 ... bytes[2] = 0; bytes[6] = 9; Assert.ThrowsException <InvalidDataException>(() => new ReaderBase(new MemoryStream(bytes), SerializationPolicy.Default).ReadHeader()); bytes[2] = 1; bytes[6] = 0; }
internal GraphWriter(TypeBinder binder, WriterBase writer, ISurrogateSelector selector, StreamingContext context, SerializationContents contents) { this._binder = binder; this._objIdGenerator = new ObjectIDGenerator(); if (contents == null) { this._writtenAssemblies = new List <string>(); this._writtenTypes = new List <string>(); this._stringContents = new List <string>(); } else { this._writtenAssemblies = new List <string>(contents._AssemblyContents); this._writtenTypes = new List <string>(contents._TypeContents); this._stringContents = new List <string>(contents._StringContents); } this._selector = selector; this._writer = writer; this._context = context; }
public void ReaderBase_ReadHeader_MissingHeaderExceptions() { var stream = new MemoryStream(); var writer = new WriterBase(stream, SerializationPolicy.Default); writer.WriteHeader(); var bytes = stream.ToArray(); // B Assert.ThrowsException <InvalidDataException>(() => new ReaderBase(new MemoryStream(bytes.Take(1).ToArray()), SerializationPolicy.Default).ReadHeader()); // BD 1.0 Assert.ThrowsException <InvalidDataException>(() => new ReaderBase(new MemoryStream(bytes.Take(10).ToArray()), SerializationPolicy.Default).ReadHeader()); // BD 1.0.0.0 Assert.ThrowsException <InvalidDataException>(() => new ReaderBase(new MemoryStream(bytes.Take(18).ToArray()), SerializationPolicy.Default).ReadHeader()); // BD 1.0.0.0 0 1.0 Assert.ThrowsException <InvalidDataException>(() => new ReaderBase(new MemoryStream(bytes.Take(30).ToArray()), SerializationPolicy.Default).ReadHeader()); }
public void ReaderBase_ReadFooter_InvalidDataExceptions() { var stream = new MemoryStream(); var writer = new WriterBase(stream, SerializationPolicy.Default); writer.Dispose(); var bytes = stream.ToArray(); bytes[0] = 0xDA; Assert.ThrowsException <InvalidDataException>(() => new ReaderBase(new MemoryStream(bytes), SerializationPolicy.Default).ReadFooter()); bytes[0] = 0xDE; bytes[1] = 0xAE; Assert.ThrowsException <InvalidDataException>(() => new ReaderBase(new MemoryStream(bytes), SerializationPolicy.Default).ReadFooter()); bytes[1] = 0xAD; bytes[2] = 0xDA; Assert.ThrowsException <InvalidDataException>(() => new ReaderBase(new MemoryStream(bytes), SerializationPolicy.Default).ReadFooter()); bytes[2] = 0xDE; bytes[3] = 0xAE; Assert.ThrowsException <InvalidDataException>(() => new ReaderBase(new MemoryStream(bytes), SerializationPolicy.Default).ReadFooter()); bytes[3] = 0xAD; }
public void Serialize(Stream serializationStream, object graph, Type expectedType) { this.Serialize(WriterBase.StreamWriter(serializationStream), graph, expectedType); }
internal virtual void Perform(WriterBase writer) { }
/// <summary>Register service method with a service binder with or without implementation. Useful when customizing the service binding logic. /// Note: this method is part of an experimental API that can change or be removed without any prior notice.</summary> /// <param name="serviceBinder">Service methods will be bound by calling <c>AddMethod</c> on this object.</param> /// <param name="serviceImpl">An object implementing the server-side handling logic.</param> public static void BindService(grpc::ServiceBinderBase serviceBinder, WriterBase serviceImpl) { serviceBinder.AddMethod(__Method_Send, serviceImpl == null ? null : new grpc::UnaryServerMethod <global::ActorPlayground.Remote.MessageEnvelope, global::ActorPlayground.Remote.MessageEnvelope>(serviceImpl.Send)); serviceBinder.AddMethod(__Method_Emit, serviceImpl == null ? null : new grpc::UnaryServerMethod <global::ActorPlayground.Remote.MessageEnvelope, global::ActorPlayground.Remote.Unit>(serviceImpl.Emit)); }
/// <summary>Creates service definition that can be registered with a server</summary> /// <param name="serviceImpl">An object implementing the server-side handling logic.</param> public static grpc::ServerServiceDefinition BindService(WriterBase serviceImpl) { return(grpc::ServerServiceDefinition.CreateBuilder() .AddMethod(__Method_Send, serviceImpl.Send) .AddMethod(__Method_Emit, serviceImpl.Emit).Build()); }
public void Serialize(WriterBase writer, TSpecific graph) { this._realSerializer.Serialize(writer, graph, this._specificType); }
internal static void Write256String(string str, WriterBase writer) { byte[] strBytes = Encoding.UTF8.GetBytes(str); writer.Write((byte)strBytes.Length); writer.Write(strBytes, 0, strBytes.Length); }
internal GraphWriter(TypeBinder binder, WriterBase writer, ISurrogateSelector selector, StreamingContext context) : this(binder, writer, selector, context, null) { }
internal GraphWriter(TypeBinder binder, WriterBase writer, ISurrogateSelector selector, SerializationContents contents) : this(binder, writer, selector, SerializationStaticHelpers.StreamingContext, contents) { }
public void Serialize(Stream serializationStream, object graph) { this.Serialize(WriterBase.StreamWriter(serializationStream), graph, null); }
public virtual void Perform(WriterBase writer) { }