private static void AddFieldReflection(FieldInfo fieldInfo, ICollection <SerializedFieldReflection> fieldReflections) { object[] customAttributes = fieldInfo.GetCustomAttributes(typeof(SerializedAttribute), inherit: true); if (customAttributes.Length > 0) { SerializedAttribute serializedAttribute = (SerializedAttribute)customAttributes[0]; AddFieldReflection(fieldInfo, fieldReflections, serializedAttribute.PrimaryId); byte[] alternateIds = serializedAttribute.AlternateIds; foreach (byte id in alternateIds) { AddFieldReflection(fieldInfo, fieldReflections, id); } } }
private static void AddType(Type type) { SerializedAttribute serializedAttribute = GetSerializedAttribute(type); if (serializedAttribute != null) { AssertNewType(type, serializedAttribute.PrimaryId); AssertTypeExtendsAbstractDocument(type); SerializedTypeReflection value = AddType(type, serializedAttribute.PrimaryId); byte[] alternateIds = serializedAttribute.AlternateIds; foreach (byte key in alternateIds) { typeReflectionsById.Add(key, value); } } }