private TouchAndWriteTypeId ( |
||
type | ||
return | int |
public void WriteTypeStamp(ObjectWriter writer) { writer.TouchAndWriteAssemblyId(TypeAssembly); writer.PrimitiveWriter.Write(GenericFullName); writer.PrimitiveWriter.Write(genericArguments.Count); foreach (var genericArgument in genericArguments) { writer.TouchAndWriteTypeId(genericArgument.UnderlyingType); } }
private void WriteStructureStamp(ObjectWriter writer) { if (baseType == null) { writer.PrimitiveWriter.Write(Consts.NullObjectId); } else { writer.TouchAndWriteTypeId(baseType.UnderlyingType); } writer.PrimitiveWriter.Write(fields.Count); foreach (var field in fields) { field.WriteTo(writer); } }
public void WriteTo(ObjectWriter writer) { writer.TouchAndWriteTypeId(FieldType.UnderlyingType); writer.TouchAndWriteTypeId(DeclaringType.UnderlyingType); writer.PrimitiveWriter.Write(Name); }
private static void WriteObjectUsingReflection(ObjectWriter objectWriter, PrimitiveWriter primitiveWriter, object o) { objectWriter.TouchAndWriteTypeId(o.GetType()); // the primitiveWriter and parameter is not used here in fact, it is only to have // signature compatible with the generated method Helpers.InvokeAttribute(typeof(PreSerializationAttribute), o); try { var type = o.GetType(); objectWriter.currentlyWrittenTypes.Push(type); if(!objectWriter.WriteSpecialObject(o)) { objectWriter.WriteObjectsFields(o, type); } objectWriter.currentlyWrittenTypes.Pop(); } finally { Helpers.InvokeAttribute(typeof(PostSerializationAttribute), o); var postHook = Helpers.GetDelegateWithAttribute(typeof(LatePostSerializationAttribute), o); if(postHook != null) { objectWriter.postSerializationHooks.Add(postHook); } } }