コード例 #1
0
        private static void CheckParameter(ParameterInfo para, MethodConfig info)
        {
            var paraInfo = new FieldConfig
            {
                Name     = para.Name,
                TypeName = para.ParameterType.GetTypeName()
            };

            if (para.HasDefaultValue)
            {
                paraInfo.DefaultValue = para.DefaultValue == null ? "null" : para.DefaultValue.ToString();
            }
            GetExtendValue(para, paraInfo);
            CheckAttributes(paraInfo, para.GetCustomAttributesData());
            info.Argument.Add(paraInfo.Name, paraInfo);
        }
コード例 #2
0
        private MethodConfig GetConfig(Type type, MethodInfo method)
        {
            var info = new MethodConfig
            {
                Name = method.Name
            };

            GetInfo(info, type, method);
            foreach (var para in method.GetParameters())
            {
                CheckParameter(para, info);
            }
            if (method.ReturnType != typeof(void))
            {
                info.Result = new FieldConfig
                {
                    TypeName = method.ReturnType.GetTypeName()
                };
            }
            return(info);
        }
コード例 #3
0
        private void GetConstructors(Type type, TypeConfig config)
        {
            var ctors = type.GetConstructors();
            int cnt   = 1;

            foreach (var method in ctors)
            {
                var info = new MethodConfig
                {
                    Name = $"ctor.{cnt++}"
                };
                foreach (var para in method.GetParameters())
                {
                    CheckParameter(para, info);
                }
                if (info.Argument.Count == 0)
                {
                    info.Argument = null;
                }
                config.Methods.Add(info);
            }
        }