private void AddResult(TestResult model, TestResult otherChild) { if (model.Results != null && model.Results.IsFixedSize) { var results = new ArrayList(model.Results); // Finding result by ReferenceEquals not to be tight to private variable name var resultsField = model.GetType() .GetFields(BindingFlags.Default | BindingFlags.Instance | BindingFlags.NonPublic) .FirstOrDefault(f => ReferenceEquals(f.GetValue(model), model.Results)); if (resultsField != null) resultsField.SetValue(model, results); } model.AddResult(otherChild); }