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 "); } }
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 "); } }