System.Runtime.Serialization.ObjectHolderListEnumerator.MoveNext C# (CSharp) Method

MoveNext() private method

private MoveNext ( ) : bool
return bool
        internal bool MoveNext()
        {
            Debug.Assert(_startingVersion == _list.Version, "[ObjectHolderListEnumerator.MoveNext]m_startingVersion==m_list.Version");
            if (_isFixupEnumerator)
            {
                while (++_currPos < _list.Count && _list._values[_currPos].CompletelyFixed) ;
                return _currPos != _list.Count;
            }
            else
            {
                _currPos++;
                return _currPos != _list.Count;
            }
        }

Usage Example

Esempio n. 1
0
        public virtual void DoFixups()
        {
            ObjectHolder current;
            int          num = -1;

            while (num != 0)
            {
                num = 0;
                ObjectHolderListEnumerator fixupEnumerator = this.SpecialFixupObjects.GetFixupEnumerator();
                while (fixupEnumerator.MoveNext())
                {
                    current = fixupEnumerator.Current;
                    if (current.ObjectValue == null)
                    {
                        throw new SerializationException(string.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Serialization_ObjectNotSupplied"), new object[] { current.m_id }));
                    }
                    if (current.TotalDependentObjects == 0)
                    {
                        if (current.RequiresSerInfoFixup)
                        {
                            this.FixupSpecialObject(current);
                            num++;
                        }
                        else if (!current.IsIncompleteObjectReference)
                        {
                            this.CompleteObject(current, true);
                        }
                        if (current.IsIncompleteObjectReference && this.ResolveObjectReference(current))
                        {
                            num++;
                        }
                    }
                }
            }
            if (this.m_fixupCount == 0L)
            {
                if (this.TopObject is TypeLoadExceptionHolder)
                {
                    throw new SerializationException(string.Format(CultureInfo.CurrentCulture, Environment.GetResourceString("Serialization_TypeLoadFailure"), new object[] { ((TypeLoadExceptionHolder)this.TopObject).TypeName }));
                }
            }
            else
            {
                for (int i = 0; i < this.m_objects.Length; i++)
                {
                    for (current = this.m_objects[i]; current != null; current = current.m_next)
                    {
                        if (current.TotalDependentObjects > 0)
                        {
                            this.CompleteObject(current, true);
                        }
                    }
                    if (this.m_fixupCount == 0L)
                    {
                        return;
                    }
                }
                throw new SerializationException(Environment.GetResourceString("Serialization_IncorrectNumberOfFixups"));
            }
        }
All Usage Examples Of System.Runtime.Serialization.ObjectHolderListEnumerator::MoveNext
ObjectHolderListEnumerator