public void Write(IFormatWriter writer, object instance) { if (_specification.IsSatisfiedBy(instance)) { _serializer.Write(writer, instance); } }
public void Write(IFormatWriter writer, object instance) { var item = writer.Get(); if (_conditions.IsSatisfiedBy(item)) { _instances.Assign(item, instance); } _container.Write(writer, instance); }
public void Write(IFormatWriter writer, object instance) { var lists = _reserved.Get(writer); foreach (var o in Yield(instance)) { var reserved = lists.Get(o); if (reserved.Any()) { reserved.Pop(); } } _serializer.Write(writer, instance); }
public void Write(IFormatWriter writer, object instance) { var list = instance as IList; if (list != null) { var references = _references.Get(writer); var hold = _reserved.Get(writer); foreach (var item in list) { if (references.Contains(item)) { hold.Get(item) .Push(list); } } } _serializer.Write(writer, instance); }
public void Write(IFormatWriter writer, object instance) { if (_conditions.IsSatisfiedBy(writer.Get())) { var references = _references.Get(instance); if (references.Any()) { var typeInfo = instance.GetType() .GetTypeInfo(); var line = Environment.NewLine; var message = $"{line}{line}Here is a list of found references:{line}{string.Join(line, references.Select(x => $"- {x}"))}"; throw new CircularReferencesDetectedException( $"The provided instance of type '{typeInfo}' contains circular references within its graph. Serializing this instance would result in a recursive, endless loop. To properly serialize this instance, please create a serializer that has referential support enabled by extending it with the ReferencesExtension.{message}", _container); } } _container.Write(writer, instance); }
public void Write(IFormatWriter writer, object instance) { _serializer.Write(writer, _write.Get(instance)); }
public void Write(IFormatWriter writer, object instance) => _serializer.Write(writer, instance);
public void Write(IFormatWriter writer, object instance) { _migrator.Write(writer, instance); _serializer.Write(writer, instance); }
public void Write(IFormatWriter writer, object instance) => _serializer.Write(writer, _converter.Format(instance));