private void OutputDecorationOfMethod(MethodInfo mi, int mask) { int methodAttributes = (int)mi.Attributes; if ((mask & MethodAttributesProperty) != 0) { int access = methodAttributes & (int)MethodAttributes.MemberAccessMask; switch ((MethodAttributes)access) { case MethodAttributes.Assembly: Output("internal "); break; case MethodAttributes.FamANDAssem: // Output("/*protected && internal*/ internal "); Output("internal "); break; case MethodAttributes.FamORAssem: Output("protected internal "); break; case MethodAttributes.Public: Output("public "); break; case MethodAttributes.Private: Output("private "); break; case MethodAttributes.Family: Output("protected "); break; case MethodAttributes.PrivateScope: // Output("/*private scope*/ private "); Output("private "); break; } if ((methodAttributes & (int)MethodAttributes.Static) != 0) { Output("static "); } } bool overrided = false; int decl = MemberDecl.FromMethodInfo(mi); switch (decl) { case MemberDecl.Inherited: // Output("/*inherited*/ "); break; case MemberDecl.New: Output("new "); break; case MemberDecl.Override: Output("override "); overrided = true; break; case MemberDecl.DeclaredOnType: // nothing; break; } if ((mask & MethodAttributesAccessor) != 0) { if ((methodAttributes & (int)MethodAttributes.Abstract) != 0) { // BL changes {{ if ((m_type.Attributes & TypeAttributes.Interface) == 0) { Output("abstract "); } // BL changes }} } else if ((methodAttributes & (int)MethodAttributes.Virtual) != 0 && !overrided) { Output("virtual "); } if ((methodAttributes & (int)MethodImplAttributes.Synchronized) != 0) { // Output("/*lock*/ "); } // do nothing: SpecialName // do nothing: RTSpecialName if ((methodAttributes & (int)MethodAttributes.PinvokeImpl) != 0) { Output("extern "); } } }
private void OutputDecorationOfMethod(MethodInfo mi, int mask) { int methodAttributes = (int)mi.Attributes; if ((mask & MethodAttributesProperty) != 0) { int access = methodAttributes & (int)MethodAttributes.MemberAccessMask; switch ((MethodAttributes)access) { case MethodAttributes.Assembly: Output("internal "); break; case MethodAttributes.FamANDAssem: // Output( "/*protected && internal*/ internal " ); Output("internal "); break; case MethodAttributes.FamORAssem: Output("package "); break; case MethodAttributes.Public: Output("public "); break; case MethodAttributes.Private: Output("private "); break; case MethodAttributes.Family: Output("protected "); break; case MethodAttributes.PrivateScope: // Output( "/*private scope*/ private " ); Output("private "); break; } if ((methodAttributes & (int)MethodAttributes.Static) != 0) { Output("static "); } } int decl = MemberDecl.FromMethodInfo(mi); switch (decl) { case MemberDecl.Inherited: // Output( "/*inherited*/ " ); break; case MemberDecl.New: Output("new "); break; case MemberDecl.Override: Output("override "); break; case MemberDecl.DeclaredOnType: // nothing; break; } if ((mask & MethodAttributesAccessor) != 0) { if ((methodAttributes & (int)MethodAttributes.Abstract) != 0) { Output("abstract "); } // virtual = no JScript equivalent--don't translate /* * else if ( ( methodAttributes & (int)MethodAttributes.Virtual ) != 0 && !bOverrided ) * Output( "virtual " ); */ if ((methodAttributes & (int)MethodImplAttributes.Synchronized) != 0) { // Output( "/*lock*/ " ); } // do nothing: SpecialName // do nothing: RTSpecialName if ((methodAttributes & (int)MethodAttributes.PinvokeImpl) != 0) { Output("extern "); } } }