public static IEnumerable <ISerializedMember> EnumerateFields(Type type, BindingFlags bindingAttr) { var fields = type.GetFields(bindingAttr); foreach (var field in fields) { if (!field.IsLiteral && !field.IsInitOnly) { ISerializedMember member = null; var attributes = field.GetCustomAttributes(); foreach (var attribute in attributes) { if (attribute is ObsoleteAttribute) { break; } else { var assetAttribute = attribute as AssetAttribute; if (attribute != null) { member = new SerializedField(assetAttribute, field); } } } if (member != null) { yield return(member); } } } }
public static IEnumerable <ISerializedMember> EnumerateProperties(Type type, BindingFlags bindingAttr) { var properties = type.GetProperties(bindingAttr); foreach (var property in properties) { if (property.CanRead && property.CanWrite) { ISerializedMember member = null; var attributes = property.GetCustomAttributes(); foreach (var attribute in attributes) { if (attribute is ObsoleteAttribute) { break; } else { var assetAttribute = attribute as AssetAttribute; if (attribute != null) { member = new SerializedProperty(assetAttribute, property); } } } if (member != null) { yield return(member); } } } }
public SerializableMember(ISerializedMember member) { if (member == null) { throw new ArgumentNullException(nameof(member)); } MemberInfo = member; serializer = null; }