Antmicro.Migrant.ObjectWriter.WriteObjectsFields C# (CSharp) Method

WriteObjectsFields() private method

private WriteObjectsFields ( object o, Type type ) : void
o object
type System.Type
return void
        private void WriteObjectsFields(object o, Type type)
        {
            // fields in the alphabetical order
            var fields = StampHelpers.GetFieldsInSerializationOrder(type);
            foreach(var field in fields)
            {
                var formalType = field.FieldType;
                var value = field.GetValue(o);
                if(value != null)
                {
                    parentObjects[value] = o;
                }

                if(Helpers.IsTypeWritableDirectly(formalType))
                {
                    WriteValueType(formalType, value);
                }
                else
                {
                    CheckForNullOrTransientnessAndWriteDeferredReference(value, formalType);
                }
            }
        }

Usage Example

コード例 #1
0
 /// <summary>
 /// Writes the object using reflection.
 ///
 /// REMARK: this method is not thread-safe!
 /// </summary>
 /// <param name="objectWriter">Object writer's object</param>
 /// <param name="o">Object to serialize</param>
 internal static void WriteObjectUsingReflection(ObjectWriter objectWriter, object o)
 {
     Helpers.InvokeAttribute(typeof(PreSerializationAttribute), o);
     if (!objectWriter.WriteSpecialObject(o, !objectWriter.treatCollectionAsUserObject))
     {
         objectWriter.WriteObjectsFields(o, o.GetType());
     }
 }
All Usage Examples Of Antmicro.Migrant.ObjectWriter::WriteObjectsFields