private void AddIdAndMark(IId target, List <string> acc, IId isStreaming) { if (!target.IsRefIId()) { return; } if (target.ContainsProperty(isStreaming)) { return; } acc.Add(target.GetFullPropertyDescription()); target.SetProperty(isStreaming, isStreaming); foreach (var propertiesAndValue in target.GetPropertiesAndValues().Where(o => o != isStreaming)) { AddIdAndMark(propertiesAndValue, acc, isStreaming); } }