Skip to content

Commit

Permalink
Remove [ThreadStatic] from MetaTypeElementUtil
Browse files Browse the repository at this point in the history
  • Loading branch information
stakx committed Jul 6, 2017
1 parent dd4f853 commit d5c941f
Showing 1 changed file with 11 additions and 14 deletions.
25 changes: 11 additions & 14 deletions src/Castle.Core/DynamicProxy/Generators/MetaTypeElementUtil.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,24 +19,21 @@ namespace Castle.DynamicProxy.Generators
using System.Text;

internal static class MetaTypeElementUtil
{
[ThreadStatic]
private static StringBuilder sharedNameBuilder;

{
public static string CreateNameForExplicitImplementation(Type sourceType, string name)
{
if (sharedNameBuilder == null)
if (sourceType.GetTypeInfo().IsGenericType)
{
sharedNameBuilder = new StringBuilder();
var nameBuilder = new StringBuilder();
nameBuilder.AppendNameOf(sourceType);
nameBuilder.Append('.');
nameBuilder.Append(name);
return nameBuilder.ToString();
}
else
{
return string.Concat(sourceType.Name, ".", name);
}

var nameBuilder = sharedNameBuilder;
nameBuilder.Length = 0;
nameBuilder.AppendNameOf(sourceType);
nameBuilder.Append('.');
nameBuilder.Append(name);

return nameBuilder.ToString();
}

private static void AppendNameOf(this StringBuilder nameBuilder, Type type)
Expand Down

0 comments on commit d5c941f

Please sign in to comment.