Esempio n. 1
0
 private FieldData AssembleField(FieldInfo field)
 {
     return(new FieldData()
     {
         Type = TypeNaming.GetFullTypeName(field.FieldType)
     });
 }
Esempio n. 2
0
 private EventData AssembleEvent(EventInfo e)
 {
     return(new EventData()
     {
         HandlerType = TypeNaming.GetFullTypeName(e.EventHandlerType),
         IsMulticast = e.IsMulticast
     });
 }
Esempio n. 3
0
 private PropertyData AssembleProperty(PropertyInfo property)
 {
     return(new PropertyData()
     {
         Accessors = GetAccessors(property),
         Type = TypeNaming.GetFullTypeName(property.PropertyType)
     });
 }
Esempio n. 4
0
        private string[] AssembleConstructor(ConstructorInfo ctor)
        {
            var parameters = new List <string>();

            foreach (ParameterInfo param in ctor.GetParameters())
            {
                parameters.Add(TypeNaming.GetFullTypeName(param.ParameterType));
            }

            return(parameters.ToArray());
        }
Esempio n. 5
0
        private IndexerData AssembleIndexer(PropertyInfo indexer)
        {
            var paramTypes = new List <string>();

            foreach (ParameterInfo param in indexer.GetIndexParameters())
            {
                paramTypes.Add(TypeNaming.GetFullTypeName(param.ParameterType));
            }

            return(new IndexerData()
            {
                Accessors = GetAccessors(indexer),
                ItemType = TypeNaming.GetFullTypeName(indexer.PropertyType),
                Parameters = paramTypes.ToArray()
            });
        }
        private string[] GetOutputType(IReadOnlyList <PSTypeName> outputType)
        {
            if (outputType == null || outputType.Count <= 0)
            {
                return(null);
            }

            var outputTypeData = new string[outputType.Count];

            for (int i = 0; i < outputTypeData.Length; i++)
            {
                outputTypeData[i] = outputType[i].Type != null
                    ? TypeNaming.GetFullTypeName(outputType[i].Type)
                    : outputType[i].Name;
            }

            return(outputTypeData);
        }
Esempio n. 7
0
        private MethodData AssembleMethod(List <MethodInfo> methodOverloads)
        {
            var overloads = new List <string[]>();

            foreach (MethodInfo overload in methodOverloads)
            {
                var parameters = new List <string>();
                foreach (ParameterInfo param in overload.GetParameters())
                {
                    parameters.Add(TypeNaming.GetFullTypeName(param.ParameterType));
                }
                overloads.Add(parameters.ToArray());
            }

            return(new MethodData()
            {
                ReturnType = TypeNaming.GetFullTypeName(methodOverloads[0].ReturnType),
                OverloadParameters = overloads.ToArray()
            });
        }
        /// <summary>
        /// Get a data object describing the parameter given by the given metadata object.
        /// </summary>
        /// <param name="parameter">The metadata of the parameter to describe.</param>
        /// <returns>A data object describing the given parameter.</returns>
        public ParameterData GetSingleParameterData(ParameterMetadata parameter)
        {
            var parameterData = new ParameterData()
            {
                Dynamic = parameter.IsDynamic
            };

            if (parameter.ParameterType != null)
            {
                parameterData.Type = TypeNaming.GetFullTypeName(parameter.ParameterType);
            }

            if (parameter.ParameterSets != null && parameter.ParameterSets.Count > 0)
            {
                parameterData.ParameterSets = new JsonCaseInsensitiveStringDictionary <ParameterSetData>();
                foreach (KeyValuePair <string, ParameterSetMetadata> parameterSet in parameter.ParameterSets)
                {
                    parameterData.ParameterSets[parameterSet.Key] = GetSingleParameterSetData(parameterSet.Value);
                }
            }

            return(parameterData);
        }