File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11using System . Text ;
22using Microsoft . Extensions . Logging ;
3+ using Microsoft . Extensions . ObjectPool ;
34
45namespace Sidio . OpenGraph ;
56
@@ -77,13 +78,22 @@ public void AddRange(IEnumerable<OpenGraphMetaTag> openGraphMetas)
7778 /// <inheritdoc />
7879 public string GetPrefixAttributeValue ( )
7980 {
80- var sb = new StringBuilder ( ) ;
81- foreach ( var ns in Namespaces )
81+ var pool = ObjectPool . Create < StringBuilder > ( ) ;
82+ var sb = pool . Get ( ) ;
83+
84+ try
8285 {
83- sb . Append ( $ "{ ns . Prefix } : { ns . SchemaUri } ") ;
84- }
86+ foreach ( var ns in Namespaces )
87+ {
88+ sb . Append ( $ "{ ns . Prefix } : { ns . SchemaUri } ") ;
89+ }
8590
86- return sb . ToString ( ) . Trim ( ) ;
91+ return sb . ToString ( ) . Trim ( ) ;
92+ }
93+ finally
94+ {
95+ pool . Return ( sb ) ;
96+ }
8797 }
8898
8999 /// <inheritdoc />
Original file line number Diff line number Diff line change 11using System . Text ;
2+ using Microsoft . Extensions . ObjectPool ;
23
34namespace Sidio . OpenGraph ;
45
@@ -14,12 +15,21 @@ public static class OpenGraphExtensions
1415 /// <returns>A HTML <see cref="string"/>.</returns>
1516 public static string MetaTagsToHtml ( this OpenGraph openGraph )
1617 {
17- var builder = new StringBuilder ( ) ;
18- foreach ( var property in openGraph . MetaTags )
18+ var pool = ObjectPool . Create < StringBuilder > ( ) ;
19+ var builder = pool . Get ( ) ;
20+
21+ try
1922 {
20- builder . Append ( $ "<meta property=\" { property . Property } \" content=\" { property . Content } \" />") ;
21- }
23+ foreach ( var property in openGraph . MetaTags )
24+ {
25+ builder . Append ( $ "<meta property=\" { property . Property } \" content=\" { property . Content } \" />") ;
26+ }
2227
23- return builder . ToString ( ) ;
28+ return builder . ToString ( ) ;
29+ }
30+ finally
31+ {
32+ pool . Return ( builder ) ;
33+ }
2434 }
2535}
Original file line number Diff line number Diff line change 2525
2626 <ItemGroup >
2727 <PackageReference Include =" Microsoft.Extensions.Logging.Abstractions" Version =" 9.0.7" />
28+ <PackageReference Include =" Microsoft.Extensions.ObjectPool" Version =" 9.0.8" />
2829 <PackageReference Include =" Microsoft.SourceLink.GitHub" Version =" 8.0.0" >
2930 <PrivateAssets >all</PrivateAssets >
3031 <IncludeAssets >runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets >
You can’t perform that action at this time.
0 commit comments