diff --git a/README.md b/README.md
index 8017ed446..435553dd4 100644
--- a/README.md
+++ b/README.md
@@ -1617,36 +1617,21 @@ partial class MyResolver
This partial class, combined with at least one `[MessagePackObject]`-annotated type, will result in some members being added to your resolver class.
These members will _not_ be in your own source file, but they will be emitted during the compilation.
Visual Studio allows you to see these source generated files through a variety of means.
-These members include the following properties `Instance` and `InstanceWithStandardAotResolver`.
-You can use these members to serialize your object graph.
+These members include the property `Instance`.
+You can use this property to access the resolver for your specific types' formatters,
+but you'll almost certainly need to combine this resolver with the standard resolver to get a fully functional serializer.
+In fact the *default* resolver in this library will automatically discover this resolver in your assembly,
+so you should only need to interact with this resolver directly for advanced scenarios.
-Leveraging this resolver at runtime requires that you opt-in, which typically looks like this:
-
-```cs
-/// Options to use MessagePack with AOT-generated formatters.
-private static readonly MessagePackSerializerOptions SerializerOptions = MessagePackSerializerOptions.Standard
- .WithResolver(MyResolver.InstanceWithStandardAotResolver);
-
-// Serialize and deserialize using the AOT option.
-byte[] serialized = MessagePackSerializer.Serialize(value, SerializerOptions);
-T after = MessagePackSerializer.Deserialize(serialized, SerializerOptions);
-```
-
-Alternatively if you run in a highly-focused process, you can set the default options, and then use the simpler overloads to serialize.
-Do NOT do this if you're in a shared process where other code may be using MessagePack with their own options.
-
-```cs
-MessagePackSerializer.DefaultOptions = SerializerOptions; // WARNING: mutates a static shared by all MessagePack users in the process
-byte[] serialized = MessagePackSerializer.Serialize(value);
-T after = MessagePackSerializer.Deserialize(serialized);
-```
+Leveraging this resolver at runtime happens automatically by default,
+since the `StandardResolver` includes the `SourceGeneratedFormatterResolver`
+which discovers and your source generated resolver.
### Customizations
You can customize the generated source through properties on the `GeneratedMessagePackResolverAttribute`.
When exposing the generated resolver publicly, consumers outside the library should aggregate the resolver using its `Instance` property, which contains *only* the generated formatters.
-The `InstanceWithStandardAotResolver` property is a convenience for callers that will not be aggregating the resolver with those from other libraries, since it aggregates built-in AOT friendly resolvers from the MessagePack library itself.
Two assembly-level attributes exist to help with mixing in your own custom formatters with the automatically generated ones:
- `MessagePackKnownFormatterAttribute`
diff --git a/src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs b/src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs
index 4205020a3..5c2375108 100644
--- a/src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs
+++ b/src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs
@@ -1076,6 +1076,13 @@ private bool CheckValidMessagePackFormatterAttribute(AttributeData formatterAttr
return null;
}
+ // Do not source generate the formatter for this type if the attribute opted out.
+ if (contractAttr.NamedArguments.FirstOrDefault(kvp => kvp.Key == Constants.SuppressSourceGenerationPropertyName).Value.Value is true)
+ {
+ // Skip any source generation
+ return null;
+ }
+
ObjectSerializationInfo info = new(isClass, isOpenGenericType, isOpenGenericType ? type.TypeParameters.Select(ToGenericTypeParameterInfo).ToArray() : Array.Empty(), constructorParameters.ToArray(), isIntKey, isIntKey ? intMembers.Values.ToArray() : stringMembers.Values.ToArray(), isOpenGenericType ? GetGenericFormatterClassName(type) : GetMinimallyQualifiedClassName(type), type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), type.ContainingNamespace.IsGlobalNamespace ? null : type.ContainingNamespace.ToDisplayString(), hasSerializationConstructor, needsCastOnAfter, needsCastOnBefore)
{
};
diff --git a/src/MessagePack.SourceGenerator/MessagePackGenerator.cs b/src/MessagePack.SourceGenerator/MessagePackGenerator.cs
index 8b736f803..5fbecab6d 100644
--- a/src/MessagePack.SourceGenerator/MessagePackGenerator.cs
+++ b/src/MessagePack.SourceGenerator/MessagePackGenerator.cs
@@ -33,7 +33,7 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
var options = resolverOptions.Combine(customFormattedTypes).Combine(customFormatters).Select(static (input, ct) =>
{
- AnalyzerOptions? options = input.Left.Left ?? new();
+ AnalyzerOptions? options = input.Left.Left ?? new() { IsGeneratingSource = true };
var formattableTypes = input.Left.Right;
var formatterTypes = input.Right.Aggregate(
@@ -48,12 +48,12 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
var messagePackObjectTypes = context.SyntaxProvider.ForAttributeWithMetadataName(
$"{AttributeNamespace}.{MessagePackObjectAttributeName}",
predicate: static (node, _) => node is TypeDeclarationSyntax,
- transform: static (context, _) => (TypeDeclarationSyntax)context.TargetNode);
+ transform: static (context, _) => (ITypeSymbol)context.TargetSymbol);
var unionTypes = context.SyntaxProvider.ForAttributeWithMetadataName(
$"{AttributeNamespace}.{MessagePackUnionAttributeName}",
predicate: static (node, _) => node is InterfaceDeclarationSyntax,
- transform: static (context, _) => (TypeDeclarationSyntax)context.TargetNode);
+ transform: static (context, _) => (ITypeSymbol)context.TargetSymbol);
var combined =
messagePackObjectTypes.Collect().Combine(unionTypes.Collect());
@@ -65,28 +65,28 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
{
AnalyzerOptions options = s.Right;
- if (!ReferenceSymbols.TryCreate(s.Left.Right, out ReferenceSymbols? referenceSymbols))
+ if (!ReferenceSymbols.TryCreate(s.Left.Right, out ReferenceSymbols? referenceSymbols) || referenceSymbols.MessagePackFormatter is null)
{
return default;
}
List modelPerType = new();
- void Collect(TypeDeclarationSyntax typeDecl)
+ void Collect(ITypeSymbol typeSymbol)
{
- if (TypeCollector.Collect(s.Left.Right, options, referenceSymbols, reportAnalyzerDiagnostic: null, typeDecl, ct) is FullModel model)
+ if (TypeCollector.Collect(s.Left.Right, options, referenceSymbols, reportAnalyzerDiagnostic: null, typeSymbol) is FullModel model)
{
modelPerType.Add(model);
}
}
- foreach (TypeDeclarationSyntax typeDecl in s.Left.Left.Left)
+ foreach (var typeSymbol in s.Left.Left.Left)
{
- Collect(typeDecl);
+ Collect(typeSymbol);
}
- foreach (TypeDeclarationSyntax typeDecl in s.Left.Left.Right)
+ foreach (var typeSymbol in s.Left.Left.Right)
{
- Collect(typeDecl);
+ Collect(typeSymbol);
}
return FullModel.Combine(modelPerType.ToImmutableArray());
diff --git a/src/MessagePack.SourceGenerator/Transforms/ResolverTemplate.cs b/src/MessagePack.SourceGenerator/Transforms/ResolverTemplate.cs
index a8d493c5d..b24120a84 100644
--- a/src/MessagePack.SourceGenerator/Transforms/ResolverTemplate.cs
+++ b/src/MessagePack.SourceGenerator/Transforms/ResolverTemplate.cs
@@ -25,26 +25,27 @@ public partial class ResolverTemplate : ResolverTemplateBase
///
public virtual string TransformText()
{
- this.Write("\r\n");
+ this.Write("\r\nusing MsgPack = global::MessagePack;\r\n\r\n[assembly: MsgPack::Internal.GeneratedA" +
+ "ssemblyMessagePackResolverAttribute(typeof(");
+ this.Write(this.ToStringHelper.ToStringWithCulture(CodeAnalysisUtilities.QualifyWithOptionalNamespace(ResolverName, ResolverNamespace)));
+ this.Write("), ");
+ this.Write(this.ToStringHelper.ToStringWithCulture(Version.Parse(ThisAssembly.AssemblyFileVersion).Major));
+ this.Write(", ");
+ this.Write(this.ToStringHelper.ToStringWithCulture(Version.Parse(ThisAssembly.AssemblyFileVersion).Minor));
+ this.Write(")]\r\n\r\n");
if (ResolverNamespace.Length > 0) {
this.Write("namespace ");
this.Write(this.ToStringHelper.ToStringWithCulture(ResolverNamespace));
this.Write(" {\r\n");
}
- this.Write("\r\nusing MsgPack = global::MessagePack;\r\n\r\n/// A MessagePack resolver tha" +
- "t uses generated formatters for types in this assembly.\r\npartial class" +
- " ");
+ this.Write("\r\n/// A MessagePack resolver that uses generated formatters for types in" +
+ " this assembly.\r\npartial class ");
this.Write(this.ToStringHelper.ToStringWithCulture(ResolverName));
this.Write(" : MsgPack::IFormatterResolver\r\n{\r\n\t/// An instance of this resolver tha" +
"t only returns formatters specifically generated for types in this assembly.\r\n\tpublic static readonly MsgPack::IFormatterResolver Instance = new ");
this.Write(this.ToStringHelper.ToStringWithCulture(ResolverName));
- this.Write(@"();
-
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
- private ");
+ this.Write("();\r\n\r\n\tprivate ");
this.Write(this.ToStringHelper.ToStringWithCulture(ResolverName));
this.Write(@"()
{
@@ -91,26 +92,7 @@ static FormatterCache()
this.Write(this.ToStringHelper.ToStringWithCulture(CodeAnalysisUtilities.QualifyWithOptionalNamespace(x.FormatterName, x.Namespace)));
this.Write("();\r\n\t");
}
- this.Write(@" default: return null;
- }
- }
- }
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
-}
-
-");
+ this.Write("\t\t\t\tdefault: return null;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n");
if (ResolverNamespace.Length > 0) {
this.Write("}\r\n");
}
diff --git a/src/MessagePack.SourceGenerator/Transforms/ResolverTemplate.tt b/src/MessagePack.SourceGenerator/Transforms/ResolverTemplate.tt
index 98afb4465..abc4d5105 100644
--- a/src/MessagePack.SourceGenerator/Transforms/ResolverTemplate.tt
+++ b/src/MessagePack.SourceGenerator/Transforms/ResolverTemplate.tt
@@ -4,21 +4,20 @@
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
+using MsgPack = global::MessagePack;
+
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(<#= CodeAnalysisUtilities.QualifyWithOptionalNamespace(ResolverName, ResolverNamespace) #>), <#= Version.Parse(ThisAssembly.AssemblyFileVersion).Major #>, <#= Version.Parse(ThisAssembly.AssemblyFileVersion).Minor #>)]
+
<# if (ResolverNamespace.Length > 0) { #>
namespace <#= ResolverNamespace #> {
<# } #>
-using MsgPack = global::MessagePack;
-
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class <#= ResolverName #> : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new <#= ResolverName #>();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private <#= ResolverName #>()
{
}
@@ -73,19 +72,6 @@ partial class <#= ResolverName #> : MsgPack::IFormatterResolver
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
<# if (ResolverNamespace.Length > 0) { #>
diff --git a/src/MessagePack.SourceGenerator/Utils/Constants.cs b/src/MessagePack.SourceGenerator/Utils/Constants.cs
index b4fba4b25..5ab4fcde4 100644
--- a/src/MessagePack.SourceGenerator/Utils/Constants.cs
+++ b/src/MessagePack.SourceGenerator/Utils/Constants.cs
@@ -11,4 +11,5 @@ internal static class Constants
internal const string MessagePackAssumedFormattableAttributeName = "MessagePackAssumedFormattableAttribute";
internal const string MessagePackObjectAttributeName = "MessagePackObjectAttribute";
internal const string MessagePackUnionAttributeName = "UnionAttribute";
+ internal const string SuppressSourceGenerationPropertyName = "SuppressSourceGeneration";
}
diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Annotations/Attributes.cs b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Annotations/Attributes.cs
index a90a17b69..b1368da08 100644
--- a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Annotations/Attributes.cs
+++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Annotations/Attributes.cs
@@ -17,6 +17,20 @@ public MessagePackObjectAttribute(bool keyAsPropertyName = false)
{
this.KeyAsPropertyName = keyAsPropertyName;
}
+
+ ///
+ /// Gets or sets a value indicating whether the source generator should not
+ /// generate a formatter for this type at compile-time.
+ ///
+ ///
+ /// By default, source generators will generate a formatter for every type that is annotated with
+ /// this attribute to improve startup performance.
+ /// However if this leads to malfunctions during code generation or at runtime,
+ /// it can be disabled by setting this property to .
+ /// When no precompiled formatter is found at runtime, the DynamicObjectResolver
+ /// will generate a formatter at runtime instead.
+ ///
+ public bool SuppressSourceGeneration { get; set; }
}
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = true)]
diff --git a/src/MessagePack/GeneratedMessagePackResolverAttribute.cs b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/GeneratedMessagePackResolverAttribute.cs
similarity index 100%
rename from src/MessagePack/GeneratedMessagePackResolverAttribute.cs
rename to src/MessagePack.UnityClient/Assets/Scripts/MessagePack/GeneratedMessagePackResolverAttribute.cs
diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/GeneratedMessagePackResolverAttribute.cs.meta b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/GeneratedMessagePackResolverAttribute.cs.meta
new file mode 100644
index 000000000..5f4990892
--- /dev/null
+++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/GeneratedMessagePackResolverAttribute.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 3c41c54fb5864a6180ab7826ae10e07d
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Internal/GeneratedAssemblyMessagePackResolverAttribute.cs b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Internal/GeneratedAssemblyMessagePackResolverAttribute.cs
new file mode 100644
index 000000000..7826a3891
--- /dev/null
+++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Internal/GeneratedAssemblyMessagePackResolverAttribute.cs
@@ -0,0 +1,39 @@
+// Copyright (c) All contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System;
+
+namespace MessagePack.Internal
+{
+ ///
+ /// An assembly-level attribute that identifies the source-generated resolver for MessagePack for all types in this assembly.
+ ///
+ [AttributeUsage(System.AttributeTargets.Assembly, Inherited = false, AllowMultiple = false)]
+ public class GeneratedAssemblyMessagePackResolverAttribute : Attribute
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The type that implements .
+ ///
+ /// The component of the version of the generator that produced the resolver and formatters.
+ /// This may be used to determine whether the resolver and formatters are compatible with the current version of MessagePack.
+ ///
+ ///
+ /// The component of the version of the generator that produced the resolver and formatters.
+ /// This may be used to determine whether the resolver and formatters are compatible with the current version of MessagePack.
+ ///
+ public GeneratedAssemblyMessagePackResolverAttribute(Type resolverType, int majorVersion, int minorVersion)
+ {
+ ResolverType = resolverType;
+ MajorVersion = majorVersion;
+ MinorVersion = minorVersion;
+ }
+
+ public Type ResolverType { get; }
+
+ public int MajorVersion { get; }
+
+ public int MinorVersion { get; }
+ }
+}
diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Internal/GeneratedAssemblyMessagePackResolverAttribute.cs.meta b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Internal/GeneratedAssemblyMessagePackResolverAttribute.cs.meta
new file mode 100644
index 000000000..b377b92ca
--- /dev/null
+++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Internal/GeneratedAssemblyMessagePackResolverAttribute.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ffcd39f733db4f0c9fc77bbcee7a3f42
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/SourceGeneratedFormatterResolver.cs b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/SourceGeneratedFormatterResolver.cs
new file mode 100644
index 000000000..ed59f74b5
--- /dev/null
+++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/SourceGeneratedFormatterResolver.cs
@@ -0,0 +1,51 @@
+// Copyright (c) All contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using System.Collections.Concurrent;
+using System.Linq;
+using System.Reflection;
+using MessagePack.Formatters;
+using MessagePack.Internal;
+
+namespace MessagePack.Resolvers
+{
+ ///
+ /// A resolver that discovers formatters generated by MessagePack.SourceGenerator.
+ ///
+ public sealed class SourceGeneratedFormatterResolver : IFormatterResolver
+ {
+ ///
+ /// The singleton instance that can be used.
+ ///
+ public static readonly SourceGeneratedFormatterResolver Instance = new();
+
+ private static readonly ConcurrentDictionary AssemblyResolverCache = new();
+
+ private SourceGeneratedFormatterResolver()
+ {
+ }
+
+ ///
+ public IMessagePackFormatter? GetFormatter() => FormatterCache.Formatter;
+
+ private static class FormatterCache
+ {
+ internal static readonly IMessagePackFormatter? Formatter = FindPrecompiledFormatter();
+
+ private static IMessagePackFormatter? FindPrecompiledFormatter()
+ {
+ IFormatterResolver? resolver = AssemblyResolverCache.GetOrAdd(typeof(T).Assembly, static assembly =>
+ {
+ if (typeof(T).Assembly.GetCustomAttributes().FirstOrDefault() is { } att)
+ {
+ return (IFormatterResolver?)att.ResolverType.GetField("Instance", BindingFlags.Public | BindingFlags.Static)?.GetValue(null);
+ }
+
+ return null;
+ });
+
+ return resolver?.GetFormatter();
+ }
+ }
+ }
+}
diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/SourceGeneratedFormatterResolver.cs.meta b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/SourceGeneratedFormatterResolver.cs.meta
new file mode 100644
index 000000000..c3764493a
--- /dev/null
+++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/SourceGeneratedFormatterResolver.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: f9e72807ad3f4827a5a5fe8161de3ffa
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/StandardResolver.cs b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/StandardResolver.cs
index 869e939ee..f738f93cb 100644
--- a/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/StandardResolver.cs
+++ b/src/MessagePack.UnityClient/Assets/Scripts/MessagePack/Resolvers/StandardResolver.cs
@@ -83,40 +83,6 @@ static FormatterCache()
}
}
- ///
- /// The standard resolver to use when targeting AOT platforms or when avoiding runtime code generation is undesirable for perf reasons.
- ///
- ///
- ///
- /// This resolver may invoke reflection at runtime, but only for types that are not known at compile time.
- ///
- ///
- /// This resolver is meant to be combined with a GeneratedResolver produced by our source generator.
- /// This is done automatically in the GeneratedResolver.InstanceWithStandardAotResolver property.
- ///
- ///
- public static class StandardAotResolver
- {
- ///
- /// The singleton instance that can be used.
- ///
- public static readonly IFormatterResolver Instance = CompositeResolver.Create(
- new IMessagePackFormatter[]
- {
- ExpandoObjectFormatter.Instance,
- },
- new IFormatterResolver[]
- {
- BuiltinResolver.Instance, // Try Builtin
- AttributeFormatterResolver.Instance, // Try use [MessagePackFormatter]
-#if UNITY_2018_3_OR_NEWER
- MessagePack.Unity.UnityResolver.Instance,
-#else
- ImmutableCollection.ImmutableCollectionResolver.Instance,
-#endif
- });
- }
-
public sealed class ContractlessStandardResolver : IFormatterResolver
{
///
@@ -323,6 +289,7 @@ internal static class StandardResolverHelper
{
BuiltinResolver.Instance, // Try Builtin
AttributeFormatterResolver.Instance, // Try use [MessagePackFormatter]
+ SourceGeneratedFormatterResolver.Instance, // Prefer source generated formatters over dynamic ones.
#if UNITY_2018_3_OR_NEWER
MessagePack.Unity.UnityResolver.Instance,
diff --git a/src/MessagePack/net6.0/PublicAPI.Unshipped.txt b/src/MessagePack/net6.0/PublicAPI.Unshipped.txt
index d595f03fd..551c8068c 100644
--- a/src/MessagePack/net6.0/PublicAPI.Unshipped.txt
+++ b/src/MessagePack/net6.0/PublicAPI.Unshipped.txt
@@ -25,11 +25,17 @@ MessagePack.GeneratedMessagePackResolverAttribute
MessagePack.GeneratedMessagePackResolverAttribute.GeneratedMessagePackResolverAttribute() -> void
MessagePack.GeneratedMessagePackResolverAttribute.UseMapMode.get -> bool
MessagePack.GeneratedMessagePackResolverAttribute.UseMapMode.set -> void
-MessagePack.Resolvers.StandardAotResolver
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute.GeneratedAssemblyMessagePackResolverAttribute(System.Type! resolverType, int majorVersion, int minorVersion) -> void
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute.MajorVersion.get -> int
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute.MinorVersion.get -> int
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute.ResolverType.get -> System.Type!
+MessagePack.Resolvers.SourceGeneratedFormatterResolver
+MessagePack.Resolvers.SourceGeneratedFormatterResolver.GetFormatter() -> MessagePack.Formatters.IMessagePackFormatter?
static readonly MessagePack.Formatters.Matrix3x2Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.Matrix4x4Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.QuaternionFormatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.Vector2Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.Vector3Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.Vector4Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
-static readonly MessagePack.Resolvers.StandardAotResolver.Instance -> MessagePack.IFormatterResolver!
\ No newline at end of file
+static readonly MessagePack.Resolvers.SourceGeneratedFormatterResolver.Instance -> MessagePack.Resolvers.SourceGeneratedFormatterResolver!
diff --git a/src/MessagePack/net8.0/PublicAPI.Unshipped.txt b/src/MessagePack/net8.0/PublicAPI.Unshipped.txt
index 8d5e421d2..2a32d2a90 100644
--- a/src/MessagePack/net8.0/PublicAPI.Unshipped.txt
+++ b/src/MessagePack/net8.0/PublicAPI.Unshipped.txt
@@ -35,11 +35,17 @@ MessagePack.ImmutableCollection.FrozenSetFormatter.Deserialize(ref MessagePac
MessagePack.ImmutableCollection.FrozenSetFormatter.FrozenSetFormatter() -> void
MessagePack.ImmutableCollection.FrozenSetFormatter.FrozenSetFormatter(System.Collections.Generic.IEqualityComparer! comparer) -> void
MessagePack.ImmutableCollection.FrozenSetFormatter.Serialize(ref MessagePack.MessagePackWriter writer, System.Collections.Frozen.FrozenSet? value, MessagePack.MessagePackSerializerOptions! options) -> void
-MessagePack.Resolvers.StandardAotResolver
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute.GeneratedAssemblyMessagePackResolverAttribute(System.Type! resolverType, int majorVersion, int minorVersion) -> void
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute.MajorVersion.get -> int
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute.MinorVersion.get -> int
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute.ResolverType.get -> System.Type!
+MessagePack.Resolvers.SourceGeneratedFormatterResolver
+MessagePack.Resolvers.SourceGeneratedFormatterResolver.GetFormatter() -> MessagePack.Formatters.IMessagePackFormatter?
static readonly MessagePack.Formatters.Matrix3x2Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.Matrix4x4Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.QuaternionFormatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.Vector2Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.Vector3Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.Vector4Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
-static readonly MessagePack.Resolvers.StandardAotResolver.Instance -> MessagePack.IFormatterResolver!
\ No newline at end of file
+static readonly MessagePack.Resolvers.SourceGeneratedFormatterResolver.Instance -> MessagePack.Resolvers.SourceGeneratedFormatterResolver!
diff --git a/src/MessagePack/netstandard2.0/PublicAPI.Unshipped.txt b/src/MessagePack/netstandard2.0/PublicAPI.Unshipped.txt
index 6e63041c0..67983d2a0 100644
--- a/src/MessagePack/netstandard2.0/PublicAPI.Unshipped.txt
+++ b/src/MessagePack/netstandard2.0/PublicAPI.Unshipped.txt
@@ -20,11 +20,17 @@ MessagePack.GeneratedMessagePackResolverAttribute
MessagePack.GeneratedMessagePackResolverAttribute.GeneratedMessagePackResolverAttribute() -> void
MessagePack.GeneratedMessagePackResolverAttribute.UseMapMode.get -> bool
MessagePack.GeneratedMessagePackResolverAttribute.UseMapMode.set -> void
-MessagePack.Resolvers.StandardAotResolver
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute.GeneratedAssemblyMessagePackResolverAttribute(System.Type! resolverType, int majorVersion, int minorVersion) -> void
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute.MajorVersion.get -> int
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute.MinorVersion.get -> int
+MessagePack.Internal.GeneratedAssemblyMessagePackResolverAttribute.ResolverType.get -> System.Type!
+MessagePack.Resolvers.SourceGeneratedFormatterResolver
+MessagePack.Resolvers.SourceGeneratedFormatterResolver.GetFormatter() -> MessagePack.Formatters.IMessagePackFormatter?
static readonly MessagePack.Formatters.Matrix3x2Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.Matrix4x4Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.QuaternionFormatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.Vector2Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.Vector3Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
static readonly MessagePack.Formatters.Vector4Formatter.Instance -> MessagePack.Formatters.IMessagePackFormatter!
-static readonly MessagePack.Resolvers.StandardAotResolver.Instance -> MessagePack.IFormatterResolver!
\ No newline at end of file
+static readonly MessagePack.Resolvers.SourceGeneratedFormatterResolver.Instance -> MessagePack.Resolvers.SourceGeneratedFormatterResolver!
diff --git a/tests/MessagePack.GeneratedCode.Tests/MissingPropertiesTest.cs b/tests/MessagePack.GeneratedCode.Tests/MissingPropertiesTest.cs
index 73eb43f77..cdb6596f2 100644
--- a/tests/MessagePack.GeneratedCode.Tests/MissingPropertiesTest.cs
+++ b/tests/MessagePack.GeneratedCode.Tests/MissingPropertiesTest.cs
@@ -18,7 +18,7 @@ public MissingPropertiesTest()
CompositeResolver.Create(
Sandbox.GeneratedMessagePackResolver.Instance,
SharedData.GeneratedMessagePackResolver.Instance,
- StandardAotResolver.Instance));
+ StandardResolver.Instance));
}
[Fact]
diff --git a/tests/MessagePack.SourceGenerator.ExecutionTests/ExecutionTests.cs b/tests/MessagePack.SourceGenerator.ExecutionTests/ExecutionTests.cs
index 1e5dca5c5..5f66b262d 100644
--- a/tests/MessagePack.SourceGenerator.ExecutionTests/ExecutionTests.cs
+++ b/tests/MessagePack.SourceGenerator.ExecutionTests/ExecutionTests.cs
@@ -3,8 +3,7 @@
public class ExecutionTests
{
- private static readonly MessagePackSerializerOptions SerializerOptions = MessagePackSerializerOptions.Standard
- .WithResolver(GeneratedMessagePackResolver.InstanceWithStandardAotResolver);
+ private static readonly MessagePackSerializerOptions SerializerOptions = MessagePackSerializerOptions.Standard;
private readonly ITestOutputHelper logger;
diff --git a/tests/MessagePack.SourceGenerator.Tests/GenerationTests.cs b/tests/MessagePack.SourceGenerator.Tests/GenerationTests.cs
index 6917caea2..973045bfe 100644
--- a/tests/MessagePack.SourceGenerator.Tests/GenerationTests.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/GenerationTests.cs
@@ -370,4 +370,34 @@ class TypeWithAutoGeneratedFormatter
""";
await VerifyCS.Test.RunDefaultAsync(this.testOutputHelper, testSource);
}
+
+ [Fact]
+ public async Task NoGenerationForAnnotationOnly()
+ {
+ string testSource = """
+using MessagePack;
+using System;
+
+[MessagePackObject]
+internal class ContainerObject
+{
+ [Key(0)]
+ internal MyGenericType TupleProperty { get; set; }
+}
+
+[MessagePackObject]
+internal class MyGenericType
+{
+ [Key(0)]
+ internal T Value { get; set; }
+}
+""";
+ await new VerifyCS.Test(ReferencesSet.MessagePackAnnotations)
+ {
+ TestState =
+ {
+ Sources = { testSource },
+ },
+ }.RunAsync();
+ }
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/MessagePackAnalyzerTests.cs b/tests/MessagePack.SourceGenerator.Tests/MessagePackAnalyzerTests.cs
index 248530f15..e3b62301f 100644
--- a/tests/MessagePack.SourceGenerator.Tests/MessagePackAnalyzerTests.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/MessagePackAnalyzerTests.cs
@@ -301,9 +301,8 @@ public class Bar : Foo
}
";
- await new VerifyCS.Test
+ await new VerifyCS.Test(ReferencesSet.MessagePackAnnotations)
{
- ReferenceAssemblies = ReferencesHelper.AnnotationsOnly,
CodeFixTestBehaviors = CodeFixTestBehaviors.SkipLocalDiagnosticCheck, // BUGBUG: move diagnostic to `Foo` reference in Bar's base type list.
TestState =
{
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/AdditionalAllowTypes/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/AdditionalAllowTypes/MessagePack.GeneratedMessagePackResolver.g.cs
index ff2080f1c..6e3784a3d 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/AdditionalAllowTypes/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/AdditionalAllowTypes/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -65,19 +64,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/AdditionalFormatterTypes/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/AdditionalFormatterTypes/MessagePack.GeneratedMessagePackResolver.g.cs
index ff2080f1c..6e3784a3d 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/AdditionalFormatterTypes/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/AdditionalFormatterTypes/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -65,19 +64,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/ArrayTypedProperty/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/ArrayTypedProperty/MessagePack.GeneratedMessagePackResolver.g.cs
index 3e0a189c2..792145828 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/ArrayTypedProperty/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/ArrayTypedProperty/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -69,19 +68,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/CanGenerateMessagePackFormatterAttr/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/CanGenerateMessagePackFormatterAttr/MessagePack.GeneratedMessagePackResolver.g.cs
index cbf7fc876..76ba03b70 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/CanGenerateMessagePackFormatterAttr/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/CanGenerateMessagePackFormatterAttr/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -65,19 +64,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/CustomFormatterViaAttributeOnProperty(False)/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/CustomFormatterViaAttributeOnProperty(False)/MessagePack.GeneratedMessagePackResolver.g.cs
index 9595cc237..4291c0160 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/CustomFormatterViaAttributeOnProperty(False)/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/CustomFormatterViaAttributeOnProperty(False)/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -65,19 +64,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/CustomFormatterViaAttributeOnProperty(True)/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/CustomFormatterViaAttributeOnProperty(True)/MessagePack.GeneratedMessagePackResolver.g.cs
index 9595cc237..4291c0160 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/CustomFormatterViaAttributeOnProperty(True)/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/CustomFormatterViaAttributeOnProperty(True)/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -65,19 +64,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(Namespace, False)/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(Namespace, False)/MessagePack.GeneratedMessagePackResolver.g.cs
index 07d45fdc2..95d6f8659 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(Namespace, False)/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(Namespace, False)/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -67,19 +66,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(Namespace, True)/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(Namespace, True)/MessagePack.GeneratedMessagePackResolver.g.cs
index 07d45fdc2..95d6f8659 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(Namespace, True)/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(Namespace, True)/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -67,19 +66,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(NestingClass, False)/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(NestingClass, False)/MessagePack.GeneratedMessagePackResolver.g.cs
index fac912278..9bbe1d786 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(NestingClass, False)/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(NestingClass, False)/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -67,19 +66,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(NestingClass, True)/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(NestingClass, True)/MessagePack.GeneratedMessagePackResolver.g.cs
index fac912278..9bbe1d786 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(NestingClass, True)/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(NestingClass, True)/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -67,19 +66,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(None, False)/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(None, False)/MessagePack.GeneratedMessagePackResolver.g.cs
index 3a76aadc5..8e57f3049 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(None, False)/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(None, False)/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -67,19 +66,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(None, True)/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(None, True)/MessagePack.GeneratedMessagePackResolver.g.cs
index 3a76aadc5..8e57f3049 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(None, True)/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter(None, True)/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -67,19 +66,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter_CollidingTypeNames/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter_CollidingTypeNames/MessagePack.GeneratedMessagePackResolver.g.cs
index 630e4913c..0f12b3642 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter_CollidingTypeNames/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/EnumFormatter_CollidingTypeNames/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -69,19 +68,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericType/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericType/MessagePack.GeneratedMessagePackResolver.g.cs
index 8f0fcbb85..eb160e0dc 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericType/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericType/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -67,19 +66,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericTypeArg/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericTypeArg/MessagePack.GeneratedMessagePackResolver.g.cs
index a5940e19f..597af17e2 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericTypeArg/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericTypeArg/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -63,19 +62,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericType_CollidingTypeNames/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericType_CollidingTypeNames/MessagePack.GeneratedMessagePackResolver.g.cs
index 77a601fa3..c40e4931d 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericType_CollidingTypeNames/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericType_CollidingTypeNames/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -69,19 +68,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfT1T2Formatter/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfT1T2Formatter/MessagePack.GeneratedMessagePackResolver.g.cs
index 8470bf088..fab953540 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfT1T2Formatter/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfT1T2Formatter/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -71,19 +70,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfTFormatter/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfTFormatter/MessagePack.GeneratedMessagePackResolver.g.cs
index 84cc33378..2fbb5557e 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfTFormatter/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfTFormatter/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -71,19 +70,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfTFormatter_FormatterOnly/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfTFormatter_FormatterOnly/MessagePack.GeneratedMessagePackResolver.g.cs
index a5940e19f..597af17e2 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfTFormatter_FormatterOnly/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfTFormatter_FormatterOnly/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -63,19 +62,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfTFormatter_WithKnownTypes/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfTFormatter_WithKnownTypes/MessagePack.GeneratedMessagePackResolver.g.cs
index f66a4268c..3229a0e9e 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfTFormatter_WithKnownTypes/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsOfTFormatter_WithKnownTypes/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -71,19 +70,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsUnionFormatter/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsUnionFormatter/MessagePack.GeneratedMessagePackResolver.g.cs
index 80bba1de1..4346144dd 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsUnionFormatter/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsUnionFormatter/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -71,19 +70,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsUnionFormatter_Nested/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsUnionFormatter_Nested/MessagePack.GeneratedMessagePackResolver.g.cs
index 9666de382..ea0c49211 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsUnionFormatter_Nested/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/GenericsUnionFormatter_Nested/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -89,19 +88,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_Multiple/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_Multiple/MessagePack.GeneratedMessagePackResolver.g.cs
index a5940e19f..597af17e2 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_Multiple/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_Multiple/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -63,19 +62,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_NullableReferenceType/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_NullableReferenceType/MessagePack.GeneratedMessagePackResolver.g.cs
index a5940e19f..597af17e2 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_NullableReferenceType/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_NullableReferenceType/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -63,19 +62,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_ReferenceType_Nullable/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_ReferenceType_Nullable/MessagePack.GeneratedMessagePackResolver.g.cs
index a5940e19f..597af17e2 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_ReferenceType_Nullable/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_ReferenceType_Nullable/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -63,19 +62,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_Struct/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_Struct/MessagePack.GeneratedMessagePackResolver.g.cs
index a5940e19f..597af17e2 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_Struct/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_Struct/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -63,19 +62,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_Type/MessagePack.GeneratedMessagePackResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_Type/MessagePack.GeneratedMessagePackResolver.g.cs
index a5940e19f..597af17e2 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_Type/MessagePack.GeneratedMessagePackResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Constraints_Type/MessagePack.GeneratedMessagePackResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace MessagePack {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(MessagePack.GeneratedMessagePackResolver), 3, 0)]
+
+namespace MessagePack {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class GeneratedMessagePackResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new GeneratedMessagePackResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private GeneratedMessagePackResolver()
{
}
@@ -63,19 +62,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter Formatter = Instance.GetFormatter() ?? MsgPack::Resolvers.StandardAotResolver.Instance.GetFormatter();
- }
- }
}
}
diff --git a/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Defined_In_ReferencedProject/DefiningProject.TempProject.MyResolver.g.cs b/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Defined_In_ReferencedProject/DefiningProject.TempProject.MyResolver.g.cs
index 5ce0abc87..2527831fb 100644
--- a/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Defined_In_ReferencedProject/DefiningProject.TempProject.MyResolver.g.cs
+++ b/tests/MessagePack.SourceGenerator.Tests/Resources/Generics_Defined_In_ReferencedProject/DefiningProject.TempProject.MyResolver.g.cs
@@ -2,19 +2,18 @@
#pragma warning disable 618, 612, 414, 168, CS1591, SA1129, SA1309, SA1312, SA1403, SA1649
-namespace TempProject {
-
using MsgPack = global::MessagePack;
+[assembly: MsgPack::Internal.GeneratedAssemblyMessagePackResolverAttribute(typeof(TempProject.MyResolver), 3, 0)]
+
+namespace TempProject {
+
/// A MessagePack resolver that uses generated formatters for types in this assembly.
partial class MyResolver : MsgPack::IFormatterResolver
{
/// An instance of this resolver that only returns formatters specifically generated for types in this assembly.
public static readonly MsgPack::IFormatterResolver Instance = new MyResolver();
- /// An instance of this resolver that returns standard AOT-compatible formatters as well as formatters specifically generated for types in this assembly.
- public static readonly MsgPack::IFormatterResolver InstanceWithStandardAotResolver = new WithStandardAotResolver();
-
private MyResolver()
{
}
@@ -63,19 +62,6 @@ internal static object GetFormatter(global::System.Type t)
}
}
}
-
- private class WithStandardAotResolver : MsgPack::IFormatterResolver
- {
- public MsgPack::Formatters.IMessagePackFormatter GetFormatter()
- {
- return FormatterCache.Formatter;
- }
-
- private static class FormatterCache
- {
- internal static readonly MsgPack::Formatters.IMessagePackFormatter