/// <summary> /// Accepts the specified visitor. /// </summary> /// <param name="visitor">The visitor.</param> public void Accept(IModelVisitor visitor) { foreach (var property in _propertyValues.Values) { property.Accept(visitor); } var method = visitor.GetType().GetMethod("VisitModel"); var built = method.MakeGenericMethod(GetType()); built.Invoke(visitor, new[] { this }); }