public void CodeFields(Type type, int version, IFieldCodeable obj)
 {
     FieldCoder[] fca = FieldCoderArray.Get(c_coderVersion, type, version, obj);
     foreach (var fc in fca)
     {
         var element = new XElement(fc.Name);
         m_elementStack.Push(m_element);
         m_element = element;
         fc.Code(this, obj);
         m_element = m_elementStack.Pop();
         AddValue(element);
     }
 }
 public void CodeFields(Type type, int version, IFieldCodeable obj)
 {
     FieldCoder[] fca = FieldCoderArray.Get(c_coderVersion, type, version, obj);
     if ((m_debugMode & CoderDebugMode.ReportFields) == 0)
     {
         foreach (var fc in fca)
         {
             fc.Code(this, obj);
         }
     }
     else
     {
         foreach (var fc in fca)
         {
             Report.Line("  {0}", fc.Name);
             fc.Code(this, obj);
         }
     }
 }