55 references to TypeNameComparison
System.Private.Windows.Core (30)
System\Private\Windows\Ole\BinaryFormatUtilities.cs (1)
152if (request.TypedRequest && !typeof(T).Matches(record.TypeName, TypeNameComparison.AllButAssemblyVersion))
System\Private\Windows\Ole\TypeBinder.cs (1)
106if (_rootType.Matches(typeName, TypeNameComparison.AllButAssemblyVersion))
System\Reflection\Metadata\TypeNameComparer.cs (10)
11private readonly TypeNameComparison _comparison; 13private TypeNameComparer(TypeNameComparison comparison) => _comparison = comparison; 18internal static TypeNameComparer FullyQualifiedMatch { get; } = new(TypeNameComparison.All); 23internal static TypeNameComparer FullNameMatch { get; } = new(TypeNameComparison.TypeFullName); 30new(TypeNameComparison.TypeFullName | TypeNameComparison.AssemblyName); 74if (_comparison.HasFlag(TypeNameComparison.AssemblyName)) 79if (_comparison.HasFlag(TypeNameComparison.AssemblyVersion) && info.Version is not null) 84if (_comparison.HasFlag(TypeNameComparison.AssemblyCultureName) && info.CultureName is not null) 89if (_comparison.HasFlag(TypeNameComparison.AssemblyPublicKeyToken) && !info.PublicKeyOrToken.IsDefaultOrEmpty)
System\TypeExtensions.cs (18)
25TypeNameComparison comparison = TypeNameComparison.All) 96/// <inheritdoc cref="Matches(Type, TypeName, TypeNameComparison)"/> 97internal static bool Matches(this TypeName x, TypeName y, TypeNameComparison comparison = TypeNameComparison.All) 160private static bool AssemblyNamesMatch(Type type, AssemblyNameInfo? assemblyNameInfo, TypeNameComparison comparison) 162if (comparison == TypeNameComparison.TypeFullName) 176return (!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)"/> 190private static bool AssemblyNamesMatch(AssemblyNameInfo? name1, AssemblyNameInfo? name2, TypeNameComparison comparison) 192if (comparison == TypeNameComparison.TypeFullName) 209return (!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)
299Resolver = (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 }, 44type.Matches(typeName, (TypeNameComparison)comparison).Should().Be(matches); 45TypeName.Parse(type.AssemblyQualifiedName).Matches(typeName, (TypeNameComparison)comparison).Should().Be(matches); 55TypeNameComparison.AllButAssemblyVersion); 76x.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,