public SerializationMetadata AcquirePropertyMetadata(Type type, PropertyInfo property, ref uint nextIndex) { var args = new AcquirePropertyMetadataArgs(type, property); OnAcquirePropertyMetadata(args); var index = args.Index.HasValue ? args.Index.Value : nextIndex++; var metadata = new SerializationMetadata(index, args.Args); return metadata; }
public SerializationMetadata AcquirePropertyMetadata(Type type, PropertyInfo property, ref uint nextIndex) { var args = new AcquirePropertyMetadataArgs(type, property); OnAcquirePropertyMetadata(args); var index = args.Index ?? nextIndex; nextIndex = index + 1; var metadata = new SerializationMetadata(index); return(metadata); }
protected virtual void OnAcquirePropertyMetadata(AcquirePropertyMetadataArgs args) { args.Index = args.Property.GetCustomAttribute <IndexAttribute>()?.Index; }
protected virtual void OnAcquirePropertyMetadata(AcquirePropertyMetadataArgs args) { }