diff --git a/build/Resources.tt b/build/Resources.tt index 2ebd66cab..697d98829 100644 --- a/build/Resources.tt +++ b/build/Resources.tt @@ -83,35 +83,12 @@ namespace {0} foreach (var resourceString in resourceStrings) { GenerationEnvironment.AppendLine(); - GenerationEnvironment.AppendFormat(@" /// ").AppendLine(); - foreach (var line in resourceString.Value.Split(new[] { Environment.NewLine }, StringSplitOptions.None)) - { - GenerationEnvironment.AppendFormat(" /// {0}", line.Replace("<", "<").Replace(">", ">")) - .AppendLine(); - } - - GenerationEnvironment.AppendFormat( -@" /// - internal static string {0}{1} - {{ -", resourceString.Name, resourceString.Arguments.Count > 0 ? resourceString.Parameters : string.Empty); - - if (resourceString.Arguments.Count == 0) - { - GenerationEnvironment.AppendFormat( -@" get {{ return GetString(""{0}""); }}", resourceString.Name); - } - else - { - GenerationEnvironment.AppendFormat( -@" return string.Format(CultureInfo.CurrentCulture, GetString(""{0}""{1}), {2});", - resourceString.Name, - resourceString.UsingNamedArgs ? ", " + resourceString.FormatArguments : null, - resourceString.ArgumentNames); - } - - GenerationEnvironment.AppendLine().Append( -@" }").AppendLine(); + RenderHeader(GenerationEnvironment, resourceString); + RenderProperty(GenerationEnvironment, resourceString); + + GenerationEnvironment.AppendLine(); + RenderHeader(GenerationEnvironment, resourceString); + RenderFormatMethod(GenerationEnvironment, resourceString); } GenerationEnvironment.Append(@" @@ -145,6 +122,49 @@ namespace {0} } #> <#+ +private static void RenderHeader(StringBuilder builder, ResourceData resourceString) +{ + builder.Append(" /// ") + .AppendLine(); + foreach (var line in resourceString.Value.Split(new[] { Environment.NewLine }, StringSplitOptions.None)) + { + builder.AppendFormat(" /// {0}", line.Replace("<", "<").Replace(">", ">")) + .AppendLine(); + } + builder.Append(" /// ") + .AppendLine(); +} + +private static void RenderProperty(StringBuilder builder, ResourceData resourceString) +{ + builder.AppendFormat(" internal static string {0}", resourceString.Name) + .AppendLine() + .AppendLine(" {") + .AppendFormat(@" get {{ return GetString(""{0}""); }}", resourceString.Name) + .AppendLine() + .AppendLine(" }"); +} + +private static void RenderFormatMethod(StringBuilder builder, ResourceData resourceString) +{ + builder.AppendFormat(" internal static string Format{0}({1})", resourceString.Name, resourceString.Parameters) + .AppendLine() + .AppendLine(" {"); + if(resourceString.Arguments.Count > 0) + { + builder.AppendFormat(@" return string.Format(CultureInfo.CurrentCulture, GetString(""{0}""{1}), {2});", + resourceString.Name, + resourceString.UsingNamedArgs ? ", " + resourceString.FormatArguments : null, + resourceString.ArgumentNames); + } + else + { + builder.AppendFormat(@" return GetString(""{0}"");", resourceString.Name); + } + builder.AppendLine() + .AppendLine(" }"); +} + private class ResourceData { @@ -166,7 +186,7 @@ private class ResourceData public string Parameters { - get { return "(" + string.Join(", ", Arguments.Select(a => "object " + GetArgName(a))) + ")"; } + get { return string.Join(", ", Arguments.Select(a => "object " + GetArgName(a))); } } public string GetArgName(string name) @@ -174,5 +194,4 @@ private class ResourceData return UsingNamedArgs ? name : 'p' + name; } } - #> \ No newline at end of file