void AppendModifiers(StringBuilder result, CSharpCodeGenerator.CodeGenerationOptions options, IMember member)
            {
                generator.AppendIndent(result);
                if (options.ExplicitDeclaration)
                {
                    return;
                }
                result.Append(GetModifiers(options.ImplementingType, member));

                if ((member.Modifiers & Modifiers.Virtual) == Modifiers.Virtual ||
                    (member.Modifiers & Modifiers.Abstract) == Modifiers.Abstract)
                {
                    result.Append("override ");
                }
            }
Exemplo n.º 2
0
            void AppendModifiers(StringBuilder result, CSharpCodeGenerator.CodeGenerationOptions options, IMember member)
            {
                generator.AppendIndent(result);
                if (options.ExplicitDeclaration || options.ImplementingType.ClassType == ClassType.Interface)
                {
                    return;
                }
                result.Append(GetModifiers(options.ImplementingType, member));

                bool isFromInterface = false;

                if (member.DeclaringType != null && member.DeclaringType.ClassType == ClassType.Interface)
                {
                    isFromInterface = true;
                    if (options.ImplementingType != null)
                    {
                        foreach (IType type in options.ImplementingType.SourceProjectDom.GetInheritanceTree(options.ImplementingType))
                        {
                            if (type.ClassType == ClassType.Interface)
                            {
                                continue;
                            }
                            if (type.SearchMember(member.Name, true).Any(m => m.Name == member.Name && member.MemberType == m.MemberType && DomMethod.ParameterListEquals(member.Parameters, m.Parameters)))
                            {
                                isFromInterface = false;
                                break;
                            }
                        }
                    }
                }
                if (!isFromInterface && ((member.Modifiers & Modifiers.Virtual) == Modifiers.Virtual ||
                                         (member.Modifiers & Modifiers.Abstract) == Modifiers.Abstract))
                {
                    result.Append("override ");
                }
            }