55 references to TypeNameComparison
System.Private.Windows.Core (30)
System\Private\Windows\Ole\BinaryFormatUtilities.cs (1)
152
if (request.TypedRequest && !typeof(T).Matches(record.TypeName,
TypeNameComparison
.AllButAssemblyVersion))
System\Private\Windows\Ole\TypeBinder.cs (1)
106
if (_rootType.Matches(typeName,
TypeNameComparison
.AllButAssemblyVersion))
System\Reflection\Metadata\TypeNameComparer.cs (10)
11
private readonly
TypeNameComparison
_comparison;
13
private TypeNameComparer(
TypeNameComparison
comparison) => _comparison = comparison;
18
internal static TypeNameComparer FullyQualifiedMatch { get; } = new(
TypeNameComparison
.All);
23
internal static TypeNameComparer FullNameMatch { get; } = new(
TypeNameComparison
.TypeFullName);
30
new(
TypeNameComparison
.TypeFullName |
TypeNameComparison
.AssemblyName);
74
if (_comparison.HasFlag(
TypeNameComparison
.AssemblyName))
79
if (_comparison.HasFlag(
TypeNameComparison
.AssemblyVersion) && info.Version is not null)
84
if (_comparison.HasFlag(
TypeNameComparison
.AssemblyCultureName) && info.CultureName is not null)
89
if (_comparison.HasFlag(
TypeNameComparison
.AssemblyPublicKeyToken) && !info.PublicKeyOrToken.IsDefaultOrEmpty)
System\TypeExtensions.cs (18)
25
TypeNameComparison
comparison =
TypeNameComparison
.All)
96
/// <inheritdoc cref="Matches(Type, TypeName,
TypeNameComparison
)"/>
97
internal static bool Matches(this TypeName x, TypeName y,
TypeNameComparison
comparison =
TypeNameComparison
.All)
160
private static bool AssemblyNamesMatch(Type type, AssemblyNameInfo? assemblyNameInfo,
TypeNameComparison
comparison)
162
if (comparison ==
TypeNameComparison
.TypeFullName)
176
return (!comparison.HasFlag(
TypeNameComparison
.AssemblyName) || assemblyName.Name == assemblyNameInfo.Name)
177
&& (!comparison.HasFlag(
TypeNameComparison
.AssemblyCultureName) || assemblyName.CultureName == assemblyNameInfo.CultureName)
178
&& (!comparison.HasFlag(
TypeNameComparison
.AssemblyVersion) || assemblyName.Version == assemblyNameInfo.Version)
179
&& (!comparison.HasFlag(
TypeNameComparison
.AssemblyPublicKeyToken)
189
/// <inheritdoc cref="AssemblyNamesMatch(Type, AssemblyNameInfo?,
TypeNameComparison
)"/>
190
private static bool AssemblyNamesMatch(AssemblyNameInfo? name1, AssemblyNameInfo? name2,
TypeNameComparison
comparison)
192
if (comparison ==
TypeNameComparison
.TypeFullName)
209
return (!comparison.HasFlag(
TypeNameComparison
.AssemblyName) || name1.Name == name2.Name)
210
&& (!comparison.HasFlag(
TypeNameComparison
.AssemblyCultureName) || name1.CultureName == name2.CultureName)
211
&& (!comparison.HasFlag(
TypeNameComparison
.AssemblyVersion) || name1.Version == name2.Version)
212
&& (!comparison.HasFlag(
TypeNameComparison
.AssemblyPublicKeyToken)
System.Private.Windows.Core.Tests (24)
System\Private\Windows\Ole\BinaryFormatUtilitiesTests.cs (1)
299
Resolver = (TypeName typeName) => typeof(int[]).Matches(typeName,
TypeNameComparison
.TypeFullName)
System\TypeExtensionsTests.cs (23)
14
{ typeof(int), TypeName.Parse(typeof(int).AssemblyQualifiedName), (int)
TypeNameComparison
.All, true },
15
{ typeof(int), TypeName.Parse(typeof(int).AssemblyQualifiedName), (int)
TypeNameComparison
.AllButAssemblyVersion, true },
16
{ typeof(int), TypeName.Parse(typeof(int).AssemblyQualifiedName), (int)
TypeNameComparison
.TypeFullName, true },
17
{ typeof(int), TypeName.Parse(typeof(int).AssemblyQualifiedName), (int)
TypeNameComparison
.AssemblyVersion, true },
18
{ typeof(int), TypeName.Parse(typeof(int).AssemblyQualifiedName), (int)
TypeNameComparison
.AssemblyCultureName, true },
19
{ typeof(int), TypeName.Parse(typeof(int).AssemblyQualifiedName), (int)
TypeNameComparison
.AssemblyName, true },
20
{ typeof(int), TypeName.Parse(typeof(int).AssemblyQualifiedName), (int)
TypeNameComparison
.AssemblyPublicKeyToken, true },
21
{ typeof(int), TypeName.Parse($"System.Int32, {Assemblies.Mscorlib}"), (int)
TypeNameComparison
.AllButAssemblyVersion, false },
22
{ typeof(int), TypeName.Parse($"System.Int32, {Assemblies.Mscorlib}"), (int)
TypeNameComparison
.TypeFullName, true },
23
{ typeof(int), TypeName.Parse($"Int32, {Assemblies.Mscorlib}"), (int)
TypeNameComparison
.TypeFullName, false },
24
{ typeof(int?), TypeName.Parse(typeof(int).AssemblyQualifiedName), (int)
TypeNameComparison
.AllButAssemblyVersion, false },
25
{ typeof(int?), TypeName.Parse(typeof(int?).AssemblyQualifiedName), (int)
TypeNameComparison
.All, true },
26
{ typeof(int?[]), TypeName.Parse($"System.Nullable`1[[System.Int32, {Assemblies.Mscorlib}]][], {Assemblies.Mscorlib}"), (int)
TypeNameComparison
.AllButAssemblyVersion, false},
27
{ typeof(DayOfWeek), TypeName.Parse($"System.Nullable`1[[System.DayOfWeek, {Assemblies.Mscorlib}]], {Assemblies.Mscorlib}"), (int)
TypeNameComparison
.AllButAssemblyVersion, false },
29
{ typeof(int), TypeName.Parse(typeof(int).AssemblyQualifiedName!.Replace("neutral", "en-US")), (int)
TypeNameComparison
.AssemblyCultureName, false },
31
{ typeof(int), TypeName.Parse("Int32"), (int)
TypeNameComparison
.TypeFullName, false },
33
{ typeof(int), TypeName.Parse("SYSTEM.Int32"), (int)
TypeNameComparison
.TypeFullName, false },
35
{ typeof(int), TypeName.Parse("System.Int32"), (int)
TypeNameComparison
.AllButAssemblyVersion, false },
37
{ typeof(int), TypeName.Parse($"System.Int32, {typeof(int).Assembly.FullName!.ToUpperInvariant()}"), (int)
TypeNameComparison
.AssemblyName, false },
44
type.Matches(typeName, (
TypeNameComparison
)comparison).Should().Be(matches);
45
TypeName.Parse(type.AssemblyQualifiedName).Matches(typeName, (
TypeNameComparison
)comparison).Should().Be(matches);
55
TypeNameComparison
.AllButAssemblyVersion);
76
x.Matches(y,
TypeNameComparison
.All).Should().Be(matches);
System.Windows.Forms.Tests (1)
System\Windows\Forms\NativeToWinFormsAdapterTests.cs (1)
35
(TypeName typeName) => typeof(int).Matches(typeName,
TypeNameComparison
.TypeFullName) ? typeof(int) : null,