/** <inheritdoc /> */
            override public void WritePortable(IPortableWriter writer)
            {
                PortableWriterImpl writer0 = (PortableWriterImpl)writer;

                writer.WriteString("before", Before);

                writer0.DetachNext();
                writer.WriteObject("inner", Inner);

                writer.WriteString("after", After);

                IPortableRawWriter rawWriter = writer.RawWriter();

                rawWriter.WriteString(RawBefore);

                writer0.DetachNext();
                rawWriter.WriteObject(RawInner);

                rawWriter.WriteString(RawAfter);
            }
            /** <inheritdoc /> */
            virtual public void WritePortable(IPortableWriter writer)
            {
                writer.WriteString("before", Before);
                writer.WriteObject("outer", Outer);
                writer.WriteString("after", After);

                IPortableRawWriter rawWriter = writer.RawWriter();

                rawWriter.WriteString(RawBefore);
                rawWriter.WriteObject(RawOuter);
                rawWriter.WriteString(RawAfter);
            }