public ISerializer Get(TypeInfo parameter) { var contents = _contents.Get(parameter); if (contents is RuntimeSerializer && _specification.IsSatisfiedBy(parameter)) { var element = _element.Get(parameter); var actual = typeof(List <>).MakeGenericType(element); var previous = _previous.Get(actual); var result = new Serializer(previous, Writers.Instance.Get(element)(previous)); return(result); } { var result = _previous.Get(parameter); return(result); } }
public void Write(IFormatWriter writer, object instance) { var list = _default.Access.Get(instance) .To <IList>(); for (var i = 0; i < list.Count; i++) { var item = list[i]; if (item != null) { var info = item.GetType() .GetTypeInfo(); var serializer = info == _type ? _item : _serializers.Get(info); serializer.Write(writer, item); } } }