protected override void AddExpandoMemberName(string name) { var dispid = 1; var dispids = ReflectMembers.Concat(expandoMembers).Select(member => member.DispID).ToArray(); for (; dispids.Contains(dispid); dispid++) { if (dispid >= int.MaxValue) { throw new NotSupportedException("The object cannot support additional dynamic members"); } } base.AddExpandoMemberName(name); expandoMembers.Add(new Member { Name = name, DispID = dispid, DispIDName = MiscHelpers.GetDispIDName(dispid) }); }