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