コード例 #1
0
        private void AddLinksToBaseTypes(TypeData typeData)
        {
            if (typeData.IsAsyncStateType)
            {
                // Internal async/await helper type,
                return;
            }

            TypeDefinition type       = typeData.Type;
            NodeData       sourceNode = typeData.Node;

            try
            {
                TypeReference baseType = type.BaseType;
                if (baseType != null && baseType.FullName != "System.Object")
                {
                    linkHandler.AddLinkToType(sourceNode.Name, baseType);
                }

                type.Interfaces
                .ForEach(interfaceType => linkHandler.AddLinkToType(sourceNode.Name, interfaceType.InterfaceType));
            }
            catch (Exception e)
            {
                Log.Exception(e, $"Failed to add base type for {type} in {sourceNode.Name}");
            }
        }
コード例 #2
0
        private void AddMemberLinks(string sourceMemberName, IMemberDefinition member)
        {
            try
            {
                switch (member)
                {
                case FieldDefinition field:
                    linkHandler.AddLinkToType(sourceMemberName, field.FieldType);
                    break;

                case PropertyDefinition property:
                    linkHandler.AddLinkToType(sourceMemberName, property.PropertyType);
                    break;

                case EventDefinition eventInfo:
                    linkHandler.AddLinkToType(sourceMemberName, eventInfo.EventType);
                    break;

                case MethodDefinition method:
                    methodParser.AddMethodLinks(sourceMemberName, method);
                    break;

                default:
                    Log.Warn($"Unknown member type {member.DeclaringType}.{member.Name}");
                    break;
                }
            }
            catch (Exception e)
            {
                Log.Exception(e, $"Failed to links for member {member} in {sourceMemberName}");
            }
        }