Skip to content

Commit e9dcd74

Browse files
committed
We generate namespaced versions of the clients, UTF8 should generate types in that namespace (#4190)
(cherry picked from commit 8538521)
1 parent 47036d1 commit e9dcd74

File tree

2 files changed

+17
-9
lines changed

2 files changed

+17
-9
lines changed

src/Elasticsearch.Net/Utf8Json/Resolvers/CompositeResolver.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,20 @@
2323
#endregion
2424

2525
using System;
26+
using System.Linq;
2627
using System.Reflection;
2728
using System.Reflection.Emit;
2829
using Elasticsearch.Net.Utf8Json.Internal.Emit;
2930

3031
namespace Elasticsearch.Net.Utf8Json.Resolvers
3132
{
33+
internal static class ResolverConfig
34+
{
35+
// this needs to be determined `dynamically` at compile time
36+
// because we rewrite namespaces and published versioned packages
37+
public static readonly string Namespace = String.Join(".", typeof(ResolverConfig).Namespace.Split('.').Take(2));
38+
}
39+
3240
internal sealed class CompositeResolver : IJsonFormatterResolver
3341
{
3442
public static readonly CompositeResolver Instance = new CompositeResolver();
@@ -147,7 +155,7 @@ static FormatterCache()
147155

148156
internal abstract class DynamicCompositeResolver : IJsonFormatterResolver
149157
{
150-
const string ModuleName = "Elasticsearch.Net.DynamicCompositeResolver";
158+
private static readonly string ModuleName = $"{ResolverConfig.Namespace}.DynamicCompositeResolver";
151159

152160
static readonly DynamicAssembly assembly;
153161

src/Elasticsearch.Net/Utf8Json/Resolvers/DynamicObjectResolver.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ internal sealed class CustomDynamicObjectResolver
8585
private readonly ThreadsafeTypeKeyHashTable<object> _formatters = new ThreadsafeTypeKeyHashTable<object>();
8686

8787
// configuration
88-
const string ModuleName = "Elasticsearch.Net.CustomDynamicObjectResolver";
88+
private static readonly string ModuleName = $"{ResolverConfig.Namespace}.CustomDynamicObjectResolver";
8989

9090
static readonly DynamicAssembly assembly;
9191

@@ -133,7 +133,7 @@ internal sealed class DynamicObjectResolverAllowPrivateFalseExcludeNullFalseName
133133
public static readonly IJsonFormatterResolver Instance = new DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateOriginal();
134134
static readonly Func<string, string> nameMutator = StringMutator.Original;
135135
static readonly bool excludeNull = false;
136-
const string ModuleName = "Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateOriginal";
136+
private static readonly string ModuleName = $"{ResolverConfig.Namespace}.DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateOriginal";
137137

138138
static readonly DynamicAssembly assembly;
139139

@@ -178,7 +178,7 @@ internal sealed class DynamicObjectResolverAllowPrivateFalseExcludeNullFalseName
178178
public static readonly IJsonFormatterResolver Instance = new DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateCamelCase();
179179
static readonly Func<string, string> nameMutator = StringMutator.ToCamelCase;
180180
static readonly bool excludeNull = false;
181-
const string ModuleName = "Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateCamelCase";
181+
private static readonly string ModuleName = $"{ResolverConfig.Namespace}.DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateCamelCase";
182182

183183
static readonly DynamicAssembly assembly;
184184

@@ -223,7 +223,7 @@ internal sealed class DynamicObjectResolverAllowPrivateFalseExcludeNullFalseName
223223
public static readonly IJsonFormatterResolver Instance = new DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateSnakeCase();
224224
static readonly Func<string, string> nameMutator = StringMutator.ToSnakeCase;
225225
static readonly bool excludeNull = false;
226-
const string ModuleName = "Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateSnakeCase";
226+
private static readonly string ModuleName = $"{ResolverConfig.Namespace}.DynamicObjectResolverAllowPrivateFalseExcludeNullFalseNameMutateSnakeCase";
227227

228228
static readonly DynamicAssembly assembly;
229229

@@ -268,7 +268,7 @@ internal sealed class DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameM
268268
public static readonly IJsonFormatterResolver Instance = new DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateOriginal();
269269
static readonly Func<string, string> nameMutator = StringMutator.Original;
270270
static readonly bool excludeNull = true;
271-
const string ModuleName = "Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateOriginal";
271+
private static readonly string ModuleName = $"{ResolverConfig.Namespace}.DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateOriginal";
272272

273273
static readonly DynamicAssembly assembly;
274274

@@ -313,7 +313,7 @@ internal sealed class DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameM
313313
public static readonly IJsonFormatterResolver Instance = new DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateCamelCase();
314314
static readonly Func<string, string> nameMutator = StringMutator.ToCamelCase;
315315
static readonly bool excludeNull = true;
316-
const string ModuleName = "Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateCamelCase";
316+
private static readonly string ModuleName = $"{ResolverConfig.Namespace}.DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateCamelCase";
317317

318318
static readonly DynamicAssembly assembly;
319319

@@ -358,7 +358,7 @@ internal sealed class DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameM
358358
public static readonly IJsonFormatterResolver Instance = new DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateSnakeCase();
359359
static readonly Func<string, string> nameMutator = StringMutator.ToSnakeCase;
360360
static readonly bool excludeNull = true;
361-
const string ModuleName = "Elasticsearch.Net.DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateSnakeCase";
361+
private static readonly string ModuleName = $"{ResolverConfig.Namespace}.DynamicObjectResolverAllowPrivateFalseExcludeNullTrueNameMutateSnakeCase";
362362

363363
static readonly DynamicAssembly assembly;
364364

@@ -653,7 +653,7 @@ static TypeInfo BuildType(DynamicAssembly assembly, Type type, Func<string, stri
653653
var hasShouldSerialize = serializationInfo.Members.Any(x => x.ShouldSerializeMethodInfo != null);
654654

655655
var formatterType = typeof(IJsonFormatter<>).MakeGenericType(type);
656-
var typeBuilder = assembly.DefineType("Elasticsearch.Net." + SubtractFullNameRegex.Replace(type.FullName, "").Replace(".", "_") + "Formatter" + Interlocked.Increment(ref nameSequence), TypeAttributes.NotPublic | TypeAttributes.Sealed, null, new[] { formatterType });
656+
var typeBuilder = assembly.DefineType(ResolverConfig.Namespace + "." + SubtractFullNameRegex.Replace(type.FullName, "").Replace(".", "_") + "Formatter" + Interlocked.Increment(ref nameSequence), TypeAttributes.NotPublic | TypeAttributes.Sealed, null, new[] { formatterType });
657657

658658
FieldBuilder stringByteKeysField;
659659
Dictionary<MetaMember, FieldInfo> customFormatterLookup;

0 commit comments

Comments
 (0)