Пример #1
0
        /// <summary>
        /// Create and return a new Link object for member
        /// </summary>
        /// <param name="field">The member</param>
        /// <param name="model">Model with the link</param>
        private static ModelDoc.Link DocumentLink(FieldInfo field, IModel model)
        {
            ModelDoc.Link link = new ModelDoc.Link();
            link.Name = field.Name;
            if (field.FieldType.IsGenericType && field.FieldType.GetInterface("IList") != null)
            {
                link.TypeName = "List<" + field.FieldType.GenericTypeArguments[0].Name + ">";
            }
            else
            {
                link.TypeName = field.FieldType.Name;
            }
            UnitsAttribute units = field.GetCustomAttribute <UnitsAttribute>();

            if (units != null)
            {
                link.Units = units.ToString();
            }
            DescriptionAttribute description = field.GetCustomAttribute <DescriptionAttribute>();

            if (description != null)
            {
                link.Description = description.ToString();
            }

            LinkAttribute linkAtt = field.GetCustomAttribute <LinkAttribute>();

            link.IsOptional = linkAtt.IsOptional;

            object linkedObject = field.GetValue(model);

            if (linkedObject != null)
            {
                if (linkedObject is IModel)
                {
                    link.LinkedModelName = Apsim.FullPath(linkedObject as IModel);
                }
                else
                {
                }
            }

            return(link);
        }
Пример #2
0
        /// <summary>
        /// Create and return a new Link object for member
        /// </summary>
        /// <param name="field">The member</param>
        /// <param name="model">Model with the link</param>
        private static ModelDoc.Link DocumentLink(FieldInfo field, IModel model)
        {
            ModelDoc.Link link = new ModelDoc.Link();
            link.Name = field.Name;
            if (field.FieldType.IsGenericType && field.FieldType.GetInterface("IList") != null)
                link.TypeName = "List<" + field.FieldType.GenericTypeArguments[0].Name + ">";
            else
                link.TypeName = field.FieldType.Name;
            UnitsAttribute units = field.GetCustomAttribute<UnitsAttribute>();
            if (units != null)
                link.Units = units.ToString();
            DescriptionAttribute description = field.GetCustomAttribute<DescriptionAttribute>();
            if (description != null)
                link.Description = description.ToString();

            LinkAttribute linkAtt = field.GetCustomAttribute<LinkAttribute>();
            link.IsOptional = linkAtt.IsOptional;

            object linkedObject = field.GetValue(model);
            if (linkedObject != null)
            {
                if (linkedObject is IModel)
                    link.LinkedModelName = Apsim.FullPath(linkedObject as IModel);
                else
                {
                }
            }

            return link;
        }