System.Runtime.Serialization.Json.XmlObjectSerializerReadContextComplexJson.XmlObjectSerializerReadContextComplexJson.GetJsonMemberIndex C# (CSharp) Method

GetJsonMemberIndex() public method

public GetJsonMemberIndex ( System.Runtime.Serialization.XmlReaderDelegator xmlReader, XmlDictionaryString memberNames, int memberIndex, ExtensionDataObject extensionData ) : int
xmlReader System.Runtime.Serialization.XmlReaderDelegator
memberNames System.Xml.XmlDictionaryString
memberIndex int
extensionData System.Runtime.Serialization.ExtensionDataObject
return int
        public int GetJsonMemberIndex(XmlReaderDelegator xmlReader, XmlDictionaryString[] memberNames, int memberIndex, ExtensionDataObject extensionData)
        {
            int length = memberNames.Length;
            if (length != 0)
            {
                for (int i = 0, index = (memberIndex + 1) % length; i < length; i++, index = (index + 1) % length)
                {
                    if (xmlReader.IsStartElement(memberNames[index], XmlDictionaryString.Empty))
                    {
                        return index;
                    }
                }
                string name;
                if (TryGetJsonLocalName(xmlReader, out name))
                {
                    for (int i = 0, index = (memberIndex + 1) % length; i < length; i++, index = (index + 1) % length)
                    {
                        if (memberNames[index].Value == name)
                        {
                            return index;
                        }
                    }
                }
            }
            HandleMemberNotFound(xmlReader, extensionData, memberIndex);
            return length;
        }