public static void BuildChild(CodeToolBase _codetool, object _fieldobj, ProtoBufferWriterCSLS _writer) { if (_fieldobj == null) { _writer.FieldNumberForward(); return; } BuilderObjectWriterBaseCSLS tobj = null; if (_codetool.IsLSType(_fieldobj.GetType())) { tobj = new BuilderObjectWriterObjectCSLS(_codetool, _fieldobj); } else { Type ttype = _fieldobj.GetType(); if (ttype.ToString().Contains("List")) { tobj = new BuilderObjectWriterArrayCSLS(_codetool, _fieldobj); } else { tobj = new BuilderObjectWriterDefaultCSLS(_codetool, _fieldobj); } } tobj.WriteMember(_writer); }
private void BuildMember() { if (mObject == null) { return; } IType[] ttypes = mCodeTool.GetFieldTypes(mType); for (int i = 0; i < ttypes.Length; i++) { object tfield = mCodeTool.GetMemberByIndex(mType, i, mObject); BuilderObjectWriterBaseCSLS.BuildChild(mCodeTool, tfield, mWriter); } }