Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/aspnet/MessagePack-CSharp.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGleb Lebedev <gllebede@microsoft.com>2022-06-29 14:34:19 +0300
committerGleb Lebedev <gllebede@microsoft.com>2022-06-29 14:34:19 +0300
commitebb2040b53747eed245aa8afa133d102b3c14608 (patch)
tree2aaacf0d02af52bc3a1c34015c1fa45eadfa0777
parenteab5122e95f32443c686548e646523038ceb7543 (diff)
Skip type collection if property has MessagePackFormatterAttribute
-rw-r--r--src/MessagePack.GeneratorCore/CodeAnalysis/TypeCollector.cs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/MessagePack.GeneratorCore/CodeAnalysis/TypeCollector.cs b/src/MessagePack.GeneratorCore/CodeAnalysis/TypeCollector.cs
index 935ceb87..eeedbdad 100644
--- a/src/MessagePack.GeneratorCore/CodeAnalysis/TypeCollector.cs
+++ b/src/MessagePack.GeneratorCore/CodeAnalysis/TypeCollector.cs
@@ -720,7 +720,12 @@ namespace MessagePackCompiler.CodeAnalysis
stringMembers.Add(member.StringKey, member);
}
- this.CollectCore(item.Type); // recursive collect
+ var messagePackFormatter = item.GetAttributes().FirstOrDefault(x => x.AttributeClass.ApproximatelyEqual(this.typeReferences.MessagePackFormatterAttribute))?.ConstructorArguments[0];
+
+ if (messagePackFormatter == null)
+ {
+ this.CollectCore(item.Type); // recursive collect
+ }
}
foreach (IFieldSymbol item in type.GetAllMembers().OfType<IFieldSymbol>())