Skip to content

Commit 66c9743

Browse files
Merge pull request #3798 from Sergio0694/deprecate/string-format
Deprecated StringExtensions.AsFormat extension
2 parents 36d757a + f122307 commit 66c9743

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

Microsoft.Toolkit/Extensions/StringExtensions.cs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// The .NET Foundation licenses this file to you under the MIT license.
33
// See the LICENSE file in the project root for more information.
44

5+
using System;
56
using System.Diagnostics.CodeAnalysis;
67
using System.Globalization;
78
using System.Net;
@@ -38,17 +39,17 @@ public static class StringExtensions
3839
/// <summary>
3940
/// Regular expression for removing comments from HTML.
4041
/// </summary>
41-
private static readonly Regex RemoveHtmlCommentsRegex = new Regex("<!--.*?-->", RegexOptions.Singleline);
42+
private static readonly Regex RemoveHtmlCommentsRegex = new("<!--.*?-->", RegexOptions.Singleline);
4243

4344
/// <summary>
4445
/// Regular expression for removing scripts from HTML.
4546
/// </summary>
46-
private static readonly Regex RemoveHtmlScriptsRegex = new Regex(@"(?s)<script.*?(/>|</script>)", RegexOptions.Singleline | RegexOptions.IgnoreCase);
47+
private static readonly Regex RemoveHtmlScriptsRegex = new(@"(?s)<script.*?(/>|</script>)", RegexOptions.Singleline | RegexOptions.IgnoreCase);
4748

4849
/// <summary>
4950
/// Regular expression for removing styles from HTML.
5051
/// </summary>
51-
private static readonly Regex RemoveHtmlStylesRegex = new Regex(@"(?s)<style.*?(/>|</style>)", RegexOptions.Singleline | RegexOptions.IgnoreCase);
52+
private static readonly Regex RemoveHtmlStylesRegex = new(@"(?s)<style.*?(/>|</style>)", RegexOptions.Singleline | RegexOptions.IgnoreCase);
5253

5354
/// <summary>
5455
/// Determines whether a string is a valid email address.
@@ -145,7 +146,17 @@ public static string FixHtml(this string html)
145146
/// <param name="format">The format of the string being linked.</param>
146147
/// <param name="args">The object which will receive the linked String.</param>
147148
/// <returns>Truncated string.</returns>
148-
public static string AsFormat(this string format, params object[] args) => string.Format(format, args);
149+
[Obsolete("This method will be removed in a future version of the Toolkit. Use the native C# string interpolation syntax instead, see: https://docs.microsoft.com/dotnet/csharp/language-reference/tokens/interpolated")]
150+
public static string AsFormat(this string format, params object[] args)
151+
{
152+
// Note: this extension was originally added to help developers using {x:Bind} in XAML, but
153+
// due to a known limitation in the UWP/WinUI XAML compiler, using either this method or the
154+
// standard string.Format method from the BCL directly doesn't always work. Since this method
155+
// doesn't actually provide any benefit over the built-in one, it has been marked as obsolete.
156+
// For more details, see the WinUI issue on the XAML compiler limitation here:
157+
// https://github.com/microsoft/microsoft-ui-xaml/issues/2654.
158+
return string.Format(format, args);
159+
}
149160

150161
/// <summary>
151162
/// Truncates a string to the specified length.

0 commit comments

Comments
 (0)