System.Runtime.Serialization.Formatters.Soap.SoapHandler.FinishChildren C# (CSharp) Method

FinishChildren() private method

private FinishChildren ( String prefix, String name, String urn ) : void
prefix String
name String
urn String
return void
        internal void FinishChildren(String prefix, String name, String urn)
        {
#if _DEBUG
            InternalST.Soap( this,SerTraceString("FinishChildren Begin ", (ParseRecord)stack.Peek(), name, prefix, urn, currentState, headerState));
#endif
            ParseRecord pr = null;

            switch (currentState)
            {
                case InternalParseStateE.Member:
                    pr = (ParseRecord)stack.Peek();                             
                    currentState = pr.PRparseStateEnum;
                    // For an object which has a value such as top level System.String
                    pr.PRvalue = textValue;
                    textValue = "";
                    break;

                case InternalParseStateE.MemberChild:
                    pr = (ParseRecord)stack.Peek();                             
                    currentState = pr.PRparseStateEnum;

                    ParseRecord objectPr = (ParseRecord)stack.PeekPeek();
                    pr.PRvalue = textValue; // Non-primitive type need to filter
                    textValue = "";

                    break;

                case InternalParseStateE.Object:
                    pr = (ParseRecord)stack.Peek();
                    if (pr.PRarrayTypeEnum == InternalArrayTypeE.Base64)
                    {
                        pr.PRvalue = textValue;
                        textValue = "";
                    }
                    // Only occur for top object, returning to SerializedStreamHeader object
                    break;

                default:
                    MarshalError("FinishChildren", (ParseRecord)stack.Peek(), name, currentState);
                    break;
            }

#if _DEBUG
            InternalST.Soap( this,SerTraceString("FinishChildren End ", (ParseRecord)stack.Peek(), name, currentState, headerState));
#endif
        }