protected override void WriteField(Action<string> Flusher, FieldAddress address, string sub, string value) { Flusher(string.Format("{0}={1}", address.Child(sub).GetDottedString(), value)); }
protected override void WriteNullField(Action<string> Flusher, FieldAddress address, string sub) { Flusher(string.Format("{0}@Null", address.Child(sub).GetDottedString())); }
static void TreeRunDown(FieldAddress address, object obj, Action<FieldAddress, object> rootFirstAction, Action<FieldAddress, object> leafFirstAction) { if (obj==null) return; if (rootFirstAction != null) rootFirstAction(address, obj); var res = TypeResolver.GetResolver(obj.GetType()); foreach (var e in res.GetSubaddresses(obj)) TreeRunDown(address.Child(e),res.GetElement(obj, e), rootFirstAction, leafFirstAction); if (leafFirstAction != null) leafFirstAction(address, obj); }