Catel.Runtime.Serialization.SerializationManager.GetFields C# (CSharp) Метод

GetFields() публичный Метод

Gets the fields
The is null.
public GetFields ( Type type ) : MemberMetadata>.Dictionary
type System.Type Type of the model.
Результат MemberMetadata>.Dictionary
        public Dictionary<string, MemberMetadata> GetFields(Type type)
        {
            Argument.IsNotNull("type", type);

            return _fieldsCache.GetFromCacheOrFetch(type, () =>
            {
                var dictionary = new Dictionary<string, MemberMetadata>();

                var fields = type.GetFieldsEx();
                foreach (var fieldInfo in fields)
                {
                    if (fieldInfo.Name.Contains("__BackingField") ||
                        fieldInfo.DeclaringType == typeof (ModelBase))
                    {
                        continue;
                    }

                    var memberMetadata = new MemberMetadata(type, fieldInfo.FieldType, SerializationMemberGroup.Field, fieldInfo.Name)
                    {
                        Tag = fieldInfo
                    };

                    var nameOverride = GetNameOverrideForSerialization(fieldInfo);
                    if (!string.IsNullOrWhiteSpace(nameOverride))
                    {
                        memberMetadata.MemberNameForSerialization = nameOverride;
                    }

                    dictionary[fieldInfo.Name] = memberMetadata;
                }

                return dictionary;
            });
        }

Usage Example

Пример #1
0
        /// <summary>
        /// Gets the type of the member.
        /// </summary>
        /// <param name="modelType">Type of the model.</param>
        /// <param name="memberName">Name of the member.</param>
        /// <returns>The <see cref="Type"/> of the member.</returns>
        protected Type GetMemberType(Type modelType, string memberName)
        {
            var catelProperties = SerializationManager.GetCatelProperties(modelType);

            if (catelProperties.ContainsKey(memberName))
            {
                return(catelProperties[memberName].MemberType);
            }

            var regularProperties = SerializationManager.GetRegularProperties(modelType);

            if (regularProperties.ContainsKey(memberName))
            {
                return(regularProperties[memberName].MemberType);
            }

            var fields = SerializationManager.GetFields(modelType);

            if (fields.ContainsKey(memberName))
            {
                return(fields[memberName].MemberType);
            }

            return(null);
        }
All Usage Examples Of Catel.Runtime.Serialization.SerializationManager::GetFields