public ImmutableArray <object> Get(IFormatWriter parameter) { var root = _root.Get(parameter.Get()); var result = root != null?_references.Get(root) : ImmutableArray <object> .Empty; return(result); }
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 ImmutableArray <object> Get(IFormatWriter parameter) => _references.Get(_root.Get(parameter.Get()));