Esempio n. 1
0
        private static void FillMethodsTable(ValueTable.ValueTable result, IEnumerable <MethodInfo> methods)
        {
            var nameColumn        = result.Columns.Add("Имя", TypeDescription.StringType(), "Имя");
            var countColumn       = result.Columns.Add("КоличествоПараметров", TypeDescription.IntegerType(), "Количество параметров");
            var isFunctionColumn  = result.Columns.Add("ЭтоФункция", TypeDescription.BooleanType(), "Это функция");
            var annotationsColumn = result.Columns.Add("Аннотации", new TypeDescription(), "Аннотации");
            var paramsColumn      = result.Columns.Add("Параметры", new TypeDescription(), "Параметры");

            foreach (var methInfo in methods)
            {
                if (!methInfo.IsExport)
                {
                    continue;
                }

                ValueTableRow new_row = result.Add();
                new_row.Set(nameColumn, ValueFactory.Create(methInfo.Name));
                new_row.Set(countColumn, ValueFactory.Create(methInfo.ArgCount));
                new_row.Set(isFunctionColumn, ValueFactory.Create(methInfo.IsFunction));

                if (methInfo.AnnotationsCount != 0)
                {
                    new_row.Set(annotationsColumn, CreateAnnotationTable(methInfo.Annotations));
                }

                var paramTable             = new ValueTable.ValueTable();
                var paramNameColumn        = paramTable.Columns.Add("Имя", TypeDescription.StringType(), "Имя");
                var paramByValue           = paramTable.Columns.Add("ПоЗначению", TypeDescription.BooleanType(), "По значению");
                var paramHasDefaultValue   = paramTable.Columns.Add("ЕстьЗначениеПоУмолчанию", TypeDescription.BooleanType(), "Есть значение по-умолчанию");
                var paramAnnotationsColumn = paramTable.Columns.Add("Аннотации", new TypeDescription(), "Аннотации");

                new_row.Set(paramsColumn, paramTable);

                if (methInfo.ArgCount != 0)
                {
                    var index = 0;
                    foreach (var param in methInfo.Params)
                    {
                        var name     = string.Format("param{0}", ++index);
                        var paramRow = paramTable.Add();
                        paramRow.Set(paramNameColumn, ValueFactory.Create(name));
                        paramRow.Set(paramByValue, ValueFactory.Create(param.IsByValue));
                        paramRow.Set(paramHasDefaultValue, ValueFactory.Create(param.HasDefaultValue));
                        if (param.AnnotationsCount != 0)
                        {
                            paramRow.Set(paramAnnotationsColumn, CreateAnnotationTable(param.Annotations));
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        private static void FillMethodsTable(ValueTable.ValueTable result, IEnumerable <MethodInfo> methods)
        {
            var nameColumn       = result.Columns.Add("Имя", TypeDescription.StringType(), "Имя");
            var countColumn      = result.Columns.Add("КоличествоПараметров", TypeDescription.IntegerType(), "Количество параметров");
            var isFunctionColumn = result.Columns.Add("ЭтоФункция", TypeDescription.BooleanType(), "Это функция");

            foreach (var methInfo in methods)
            {
                ValueTableRow new_row = result.Add();
                new_row.Set(nameColumn, ValueFactory.Create(methInfo.Name));
                new_row.Set(countColumn, ValueFactory.Create(methInfo.ArgCount));
                new_row.Set(isFunctionColumn, ValueFactory.Create(methInfo.IsFunction));
            }
        }
Esempio n. 3
0
        public ValueTable.ValueTable GetMethodsTable(IRuntimeContextInstance target)
        {
            ValueTable.ValueTable Result = new ValueTable.ValueTable();

            var NameColumn       = Result.Columns.Add("Имя", TypeDescription.StringType(), "Имя");
            var CountColumn      = Result.Columns.Add("КоличествоПараметров", TypeDescription.IntegerType(), "Количество параметров");
            var IsFunctionColumn = Result.Columns.Add("ЭтоФункция", TypeDescription.BooleanType(), "Это функция");

            foreach (var methInfo in target.GetMethods())
            {
                ValueTableRow new_row = Result.Add();
                new_row.Set(NameColumn, ValueFactory.Create(methInfo.Name));
                new_row.Set(CountColumn, ValueFactory.Create(methInfo.ArgCount));
                new_row.Set(IsFunctionColumn, ValueFactory.Create(methInfo.IsFunction));
            }

            return(Result);
        }