private static void GenerateMethod(StringBuilder sb, MethodVisibility methodVisibility, string methodName, string methodBody)
 {
     sb.AppendLine(@"#line 1 """"");
     sb.AppendFormat("    {0} {1}void {2}", methodVisibility.ToString().ToLowerInvariant(), methodVisibility == MethodVisibility.Private ? "static " : "", methodName);
     sb.AppendLine();
     sb.AppendLine("    {");
     sb.AppendLine(@"#line 1 """"");
     sb.AppendFormat("        {0};", methodBody);
     sb.AppendLine();
     sb.AppendLine("    }");
 }
Beispiel #2
0
        /// <summary>
        /// hack to set visibility of events - must be last added as it is a comments that hacks it
        /// </summary>
        /// <param name="targetMethod"></param>
        /// <param name="evt"></param>
        public static void SetMethodVisibility(CodeMemberMethod targetMethod, EventType evt)
        {
            targetMethod.Attributes = MemberAttributes.Overloaded;
            MethodVisibility visibility = MethodVisibility.none;

            string vTag = visibility.ToString( );

            switch (evt.visibility)
            {
            case "public":
                visibility = MethodVisibility.@public;
                targetMethod.Attributes = MemberAttributes.Public;
                break;

            case "protected":
                visibility = MethodVisibility.@protected;
                break;

            case "internal":
                visibility = MethodVisibility.@internal;
                break;

            case "none":
                visibility = MethodVisibility.none;
                break;

            case "private":
                visibility = MethodVisibility.@private;
                targetMethod.Attributes = MemberAttributes.Private;
                break;

            default:
                visibility = MethodVisibility.@public;
                break;
            }

            //targetMethod.Comments.Add(new CodeCommentStatement(CoderBase.LineReplacementFlag + visibility ));
            if (visibility != MethodVisibility.@public && visibility != MethodVisibility.@private && visibility != MethodVisibility.none)
            {
                targetMethod.CustomAttributes.Add(
                    new CodeAttributeDeclaration(CoderBase.MethodVisibilityHackReplacementFlag + visibility));
            }
        }