Пример #1
0
        private SDMethod GetParsedMethod(IMethod method, bool isCtor)
        {
            var sdMethod = _repository.GetMethodByIdentifier(method.GetIdentifier());

            if (sdMethod != null)
            {
                return(sdMethod);
            }

            var returnType = _typeParser.GetParsedType(method.ReturnType);

            sdMethod = new SDMethod(method.GetIdentifier(), isCtor ? method.DeclaringType.Name : method.Name)
            {
                Namespace     = method.Namespace,
                DeclaringType = _typeParser.GetParsedType(method.DeclaringType),
                ReturnType    = returnType,
                IsCtor        = isCtor,
                Accessibility = method.Accessibility.ToString().ToLower(),
                IsAbstract    = method.IsAbstract,
                IsShadowing   = method.IsShadowing,
                IsOverride    = method.IsOverride,
                IsPrivate     = method.IsPrivate,
                IsProtected   = method.IsProtected,
                IsPublic      = method.IsPublic,
                IsSealed      = method.IsSealed,
                IsVirtual     = method.IsVirtual,
                Documentation = _documentationParser.ParseDocumentation(method),
                Region        = new SDRegion
                {
                    BeginColumn = method.Region.BeginColumn,
                    BeginLine   = method.Region.BeginLine,
                    EndColumn   = method.Region.EndColumn,
                    EndLine     = method.Region.EndLine,
                    Filename    = method.Region.FileName
                }
            };

            foreach (ITypeParameter typeParameter in method.TypeParameters)
            {
                sdMethod.TypeParameters.Add(_typeParser.GetParsedType(typeParameter));
            }

            foreach (IParameter parameter in method.Parameters)
            {
                sdMethod.Parameters.Add(new SDParameter
                {
                    Name          = parameter.Name,
                    ParamType     = _typeParser.GetParsedType(parameter.Type),
                    IsOptional    = parameter.IsOptional,
                    IsConst       = parameter.IsConst,
                    ConstantValue = parameter.ConstantValue,
                    IsRef         = parameter.IsRef,
                    IsOut         = parameter.IsOut
                });
            }

            _repository.AddMethod(sdMethod);
            return(sdMethod);
        }
Пример #2
0
        private SDField GetParsedField(IField field)
        {
            var sdField = new SDField(field.GetIdentifier())
            {
                Name          = field.Name,
                DeclaringType = _typeParser.GetParsedType(field.DeclaringType),
                Accessibility = field.Accessibility.ToString().ToLower(),
                ReturnType    = _typeParser.GetParsedType(field.ReturnType),
                Documentation = _documentationParser.ParseDocumentation(field)
            };

            _repository.AddMember(sdField);
            return(sdField);
        }
Пример #3
0
        private SDProperty GetParsedProperty(IProperty property)
        {
            var sdProperty = new SDProperty(property.GetIdentifier())
            {
                Name          = property.Name,
                DeclaringType = _typeParser.GetParsedType(property.DeclaringType),
                Accessibility = property.Accessibility.ToString().ToLower(),
                ReturnType    = _typeParser.GetParsedType(property.ReturnType),
                CanGet        = property.CanGet,
                CanSet        = property.CanSet,
                IsAbstract    = property.IsAbstract,
                IsVirtual     = property.IsVirtual,
                IsOverride    = property.IsOverride,
                Documentation = _documentationParser.ParseDocumentation(property)
            };

            _repository.AddMember(sdProperty);
            return(sdProperty);
        }
Пример #4
0
        private SDEvent GetParsedEvent(IEvent eve)
        {
            var sdEvent = new SDEvent(eve.GetIdentifier())
            {
                Name          = eve.Name,
                DeclaringType = _typeParser.GetParsedType(eve.DeclaringType),
                Accessibility = eve.Accessibility.ToString().ToLower(),
                Documentation = _documentationParser.ParseDocumentation(eve)
            };

            _repository.AddMember(sdEvent);
            return(sdEvent);
        }