Class SignatureComparer
- Namespace
- AsmResolver.DotNet.Signatures
- Assembly
- AsmResolver.DotNet.dll
Provides a mechanism for comparing signatures of members defined in a .NET assembly by their contents.
public class SignatureComparer : IEqualityComparer<CallingConventionSignature>, IEqualityComparer<FieldSignature>, IEqualityComparer<MethodSignature>, IEqualityComparer<PropertySignature>, IEqualityComparer<LocalVariablesSignature>, IEqualityComparer<GenericInstanceMethodSignature>, IEqualityComparer<byte[]>, IEqualityComparer<MemberReference>, IEqualityComparer<IMethodDescriptor>, IEqualityComparer<IFieldDescriptor>, IEqualityComparer<MethodSpecification>, IEqualityComparer<IResolutionScope>, IEqualityComparer<AssemblyDescriptor>, IEqualityComparer<AssemblyReference>, IEqualityComparer<ITypeDescriptor>, IEqualityComparer<ITypeDefOrRef>, IEqualityComparer<TypeDefinition>, IEqualityComparer<TypeReference>, IEqualityComparer<TypeSpecification>, IEqualityComparer<ExportedType>, IEqualityComparer<InvalidTypeDefOrRef>, IEqualityComparer<TypeSignature>, IEqualityComparer<CorLibTypeSignature>, IEqualityComparer<ByReferenceTypeSignature>, IEqualityComparer<PointerTypeSignature>, IEqualityComparer<SzArrayTypeSignature>, IEqualityComparer<PinnedTypeSignature>, IEqualityComparer<BoxedTypeSignature>, IEqualityComparer<TypeDefOrRefSignature>, IEqualityComparer<CustomModifierTypeSignature>, IEqualityComparer<GenericInstanceTypeSignature>, IEqualityComparer<GenericParameterSignature>, IEqualityComparer<ArrayTypeSignature>, IEqualityComparer<SentinelTypeSignature>, IEqualityComparer<FunctionPointerTypeSignature>, IEqualityComparer<IList<TypeSignature>>, IEqualityComparer<IEnumerable<TypeSignature>>
- Inheritance
-
SignatureComparer
- Implements
- Inherited Members
Constructors
SignatureComparer()
The default SignatureComparer constructor.
public SignatureComparer()
SignatureComparer(RuntimeContext?)
A SignatureComparer constructor with a parameter for specifying the Flags used in comparisons.
public SignatureComparer(RuntimeContext? context)
Parameters
contextRuntimeContextThe runtime context that is assumed when comparing types.
SignatureComparer(RuntimeContext?, SignatureComparisonFlags)
A SignatureComparer constructor with a parameter for specifying the Flags used in comparisons.
public SignatureComparer(RuntimeContext? context, SignatureComparisonFlags flags)
Parameters
contextRuntimeContextThe runtime context that is assumed when comparing types.
flagsSignatureComparisonFlagsThe Flags used in comparisons.
SignatureComparer(SignatureComparisonFlags)
A SignatureComparer constructor with a parameter for specifying the Flags used in comparisons.
public SignatureComparer(SignatureComparisonFlags flags)
Parameters
flagsSignatureComparisonFlagsThe Flags used in comparisons.
Properties
Default
An immutable default instance of SignatureComparer.
public static SignatureComparer Default { get; }
Property Value
Flags
Flags for controlling comparison behavior.
public SignatureComparisonFlags Flags { get; }
Property Value
RuntimeContext
When available, gets the runtime context that is assumed when comparing types.
public RuntimeContext? RuntimeContext { get; }
Property Value
Remarks
When null, types are always compared as-is. When non-null, any exported type is resolved first
before doing the comparison.
Methods
Equals(AssemblyDescriptor?, AssemblyDescriptor?)
public virtual bool Equals(AssemblyDescriptor? x, AssemblyDescriptor? y)
Parameters
Returns
Equals(AssemblyReference?, AssemblyReference?)
public virtual bool Equals(AssemblyReference? x, AssemblyReference? y)
Parameters
Returns
Equals(ExportedType?, ExportedType?)
public virtual bool Equals(ExportedType? x, ExportedType? y)
Parameters
Returns
Equals(IFieldDescriptor?, IFieldDescriptor?)
public virtual bool Equals(IFieldDescriptor? x, IFieldDescriptor? y)
Parameters
Returns
Equals(IMethodDescriptor?, IMethodDescriptor?)
public virtual bool Equals(IMethodDescriptor? x, IMethodDescriptor? y)
Parameters
Returns
Equals(IResolutionScope?, IResolutionScope?)
public virtual bool Equals(IResolutionScope? x, IResolutionScope? y)
Parameters
Returns
Equals(ITypeDefOrRef?, ITypeDefOrRef?)
public virtual bool Equals(ITypeDefOrRef? x, ITypeDefOrRef? y)
Parameters
Returns
Equals(ITypeDescriptor?, ITypeDescriptor?)
public virtual bool Equals(ITypeDescriptor? x, ITypeDescriptor? y)
Parameters
Returns
Equals(InvalidTypeDefOrRef?, InvalidTypeDefOrRef?)
public virtual bool Equals(InvalidTypeDefOrRef? x, InvalidTypeDefOrRef? y)
Parameters
Returns
Equals(MemberReference?, MemberReference?)
public virtual bool Equals(MemberReference? x, MemberReference? y)
Parameters
Returns
Equals(MethodSpecification?, MethodSpecification?)
public virtual bool Equals(MethodSpecification? x, MethodSpecification? y)
Parameters
Returns
Equals(ArrayTypeSignature?, ArrayTypeSignature?)
public virtual bool Equals(ArrayTypeSignature? x, ArrayTypeSignature? y)
Parameters
Returns
Equals(BoxedTypeSignature?, BoxedTypeSignature?)
public virtual bool Equals(BoxedTypeSignature? x, BoxedTypeSignature? y)
Parameters
Returns
Equals(ByReferenceTypeSignature?, ByReferenceTypeSignature?)
public virtual bool Equals(ByReferenceTypeSignature? x, ByReferenceTypeSignature? y)
Parameters
Returns
Equals(CallingConventionSignature?, CallingConventionSignature?)
public virtual bool Equals(CallingConventionSignature? x, CallingConventionSignature? y)
Parameters
Returns
Equals(CorLibTypeSignature?, CorLibTypeSignature?)
public virtual bool Equals(CorLibTypeSignature? x, CorLibTypeSignature? y)
Parameters
Returns
Equals(CustomModifierTypeSignature?, CustomModifierTypeSignature?)
public virtual bool Equals(CustomModifierTypeSignature? x, CustomModifierTypeSignature? y)
Parameters
Returns
Equals(FieldSignature?, FieldSignature?)
public virtual bool Equals(FieldSignature? x, FieldSignature? y)
Parameters
Returns
Equals(FunctionPointerTypeSignature?, FunctionPointerTypeSignature?)
public virtual bool Equals(FunctionPointerTypeSignature? x, FunctionPointerTypeSignature? y)
Parameters
Returns
Equals(GenericInstanceMethodSignature?, GenericInstanceMethodSignature?)
public virtual bool Equals(GenericInstanceMethodSignature? x, GenericInstanceMethodSignature? y)
Parameters
Returns
Equals(GenericInstanceTypeSignature?, GenericInstanceTypeSignature?)
public virtual bool Equals(GenericInstanceTypeSignature? x, GenericInstanceTypeSignature? y)
Parameters
Returns
Equals(GenericParameterSignature?, GenericParameterSignature?)
public virtual bool Equals(GenericParameterSignature? x, GenericParameterSignature? y)
Parameters
Returns
Equals(LocalVariablesSignature?, LocalVariablesSignature?)
public virtual bool Equals(LocalVariablesSignature? x, LocalVariablesSignature? y)
Parameters
Returns
Equals(MethodSignature?, MethodSignature?)
public virtual bool Equals(MethodSignature? x, MethodSignature? y)
Parameters
Returns
Equals(PinnedTypeSignature?, PinnedTypeSignature?)
public virtual bool Equals(PinnedTypeSignature? x, PinnedTypeSignature? y)
Parameters
Returns
Equals(PointerTypeSignature?, PointerTypeSignature?)
public virtual bool Equals(PointerTypeSignature? x, PointerTypeSignature? y)
Parameters
Returns
Equals(PropertySignature?, PropertySignature?)
public virtual bool Equals(PropertySignature? x, PropertySignature? y)
Parameters
Returns
Equals(SentinelTypeSignature?, SentinelTypeSignature?)
public virtual bool Equals(SentinelTypeSignature? x, SentinelTypeSignature? y)
Parameters
Returns
Equals(SzArrayTypeSignature?, SzArrayTypeSignature?)
public virtual bool Equals(SzArrayTypeSignature? x, SzArrayTypeSignature? y)
Parameters
Returns
Equals(TypeDefOrRefSignature?, TypeDefOrRefSignature?)
public virtual bool Equals(TypeDefOrRefSignature? x, TypeDefOrRefSignature? y)
Parameters
Returns
Equals(TypeSignature?, TypeSignature?)
public virtual bool Equals(TypeSignature? x, TypeSignature? y)
Parameters
Returns
Equals(TypeDefinition?, TypeDefinition?)
public virtual bool Equals(TypeDefinition? x, TypeDefinition? y)
Parameters
Returns
Equals(TypeReference?, TypeReference?)
public virtual bool Equals(TypeReference? x, TypeReference? y)
Parameters
Returns
Equals(TypeSpecification?, TypeSpecification?)
public virtual bool Equals(TypeSpecification? x, TypeSpecification? y)
Parameters
Returns
Equals(byte[]?, byte[]?)
public virtual bool Equals(byte[]? x, byte[]? y)
Parameters
Returns
Equals(IEnumerable<TypeSignature>?, IEnumerable<TypeSignature>?)
public virtual bool Equals(IEnumerable<TypeSignature>? x, IEnumerable<TypeSignature>? y)
Parameters
Returns
Equals(IList<TypeSignature>?, IList<TypeSignature>?)
public virtual bool Equals(IList<TypeSignature>? x, IList<TypeSignature>? y)
Parameters
xIList<TypeSignature>yIList<TypeSignature>
Returns
GetHashCode(AssemblyDescriptor)
public virtual int GetHashCode(AssemblyDescriptor obj)
Parameters
Returns
GetHashCode(AssemblyReference)
public virtual int GetHashCode(AssemblyReference obj)
Parameters
Returns
GetHashCode(ExportedType)
public virtual int GetHashCode(ExportedType obj)
Parameters
objExportedType
Returns
GetHashCode(IFieldDescriptor)
public virtual int GetHashCode(IFieldDescriptor obj)
Parameters
objIFieldDescriptor
Returns
GetHashCode(IMethodDescriptor)
public virtual int GetHashCode(IMethodDescriptor obj)
Parameters
Returns
GetHashCode(IResolutionScope)
public virtual int GetHashCode(IResolutionScope obj)
Parameters
objIResolutionScope
Returns
GetHashCode(ITypeDefOrRef)
public virtual int GetHashCode(ITypeDefOrRef obj)
Parameters
objITypeDefOrRef
Returns
GetHashCode(ITypeDescriptor)
public virtual int GetHashCode(ITypeDescriptor obj)
Parameters
objITypeDescriptor
Returns
GetHashCode(InvalidTypeDefOrRef)
public virtual int GetHashCode(InvalidTypeDefOrRef obj)
Parameters
Returns
GetHashCode(MemberReference)
public virtual int GetHashCode(MemberReference obj)
Parameters
objMemberReference
Returns
GetHashCode(MethodSpecification)
public virtual int GetHashCode(MethodSpecification obj)
Parameters
Returns
GetHashCode(ArrayTypeSignature)
public virtual int GetHashCode(ArrayTypeSignature obj)
Parameters
Returns
GetHashCode(BoxedTypeSignature)
public virtual int GetHashCode(BoxedTypeSignature obj)
Parameters
Returns
GetHashCode(ByReferenceTypeSignature)
public virtual int GetHashCode(ByReferenceTypeSignature obj)
Parameters
Returns
GetHashCode(CallingConventionSignature)
public virtual int GetHashCode(CallingConventionSignature obj)
Parameters
Returns
GetHashCode(CorLibTypeSignature)
public virtual int GetHashCode(CorLibTypeSignature obj)
Parameters
Returns
GetHashCode(CustomModifierTypeSignature)
public virtual int GetHashCode(CustomModifierTypeSignature obj)
Parameters
Returns
GetHashCode(FieldSignature)
public virtual int GetHashCode(FieldSignature obj)
Parameters
objFieldSignature
Returns
GetHashCode(FunctionPointerTypeSignature)
public virtual int GetHashCode(FunctionPointerTypeSignature obj)
Parameters
Returns
GetHashCode(GenericInstanceMethodSignature)
public virtual int GetHashCode(GenericInstanceMethodSignature obj)
Parameters
Returns
GetHashCode(GenericInstanceTypeSignature)
public virtual int GetHashCode(GenericInstanceTypeSignature obj)
Parameters
Returns
GetHashCode(GenericParameterSignature)
public virtual int GetHashCode(GenericParameterSignature obj)
Parameters
Returns
GetHashCode(LocalVariablesSignature)
public virtual int GetHashCode(LocalVariablesSignature obj)
Parameters
Returns
GetHashCode(MethodSignature)
public virtual int GetHashCode(MethodSignature obj)
Parameters
objMethodSignature
Returns
GetHashCode(PinnedTypeSignature)
public virtual int GetHashCode(PinnedTypeSignature obj)
Parameters
Returns
GetHashCode(PointerTypeSignature)
public virtual int GetHashCode(PointerTypeSignature obj)
Parameters
Returns
GetHashCode(PropertySignature)
public virtual int GetHashCode(PropertySignature obj)
Parameters
Returns
GetHashCode(SentinelTypeSignature)
public virtual int GetHashCode(SentinelTypeSignature obj)
Parameters
Returns
GetHashCode(SzArrayTypeSignature)
public virtual int GetHashCode(SzArrayTypeSignature obj)
Parameters
Returns
GetHashCode(TypeDefOrRefSignature)
public virtual int GetHashCode(TypeDefOrRefSignature obj)
Parameters
Returns
GetHashCode(TypeSignature)
public virtual int GetHashCode(TypeSignature obj)
Parameters
objTypeSignature
Returns
GetHashCode(TypeDefinition)
public virtual int GetHashCode(TypeDefinition obj)
Parameters
objTypeDefinition
Returns
GetHashCode(TypeReference)
public virtual int GetHashCode(TypeReference obj)
Parameters
objTypeReference
Returns
GetHashCode(TypeSpecification)
public virtual int GetHashCode(TypeSpecification obj)
Parameters
Returns
GetHashCode(byte[])
public virtual int GetHashCode(byte[] obj)
Parameters
objbyte[]
Returns
GetHashCode(IEnumerable<TypeSignature>)
public virtual int GetHashCode(IEnumerable<TypeSignature> obj)
Parameters
objIEnumerable<TypeSignature>
Returns
GetHashCode(IList<TypeSignature>)
public virtual int GetHashCode(IList<TypeSignature> obj)
Parameters
objIList<TypeSignature>
Returns
SimpleTypeEquals(ITypeDescriptor, ITypeDescriptor)
Compares two ITypeDescriptors without specializing for unusual kinds of descriptors.
protected virtual bool SimpleTypeEquals(ITypeDescriptor x, ITypeDescriptor y)
Parameters
xITypeDescriptorThe first ITypeDescriptor to compare
yITypeDescriptorThe second ITypeDescriptor to compare
Returns
Remarks
This is called by Equals(ITypeDefOrRef?, ITypeDefOrRef?) for non-TypeSignatures. Overrides of
this method should, as much as possible, compare x and y directly.
SimpleTypeHashCode(ITypeDescriptor)
Gets the hashcode of a ITypeDescriptor without specializing for unusual kinds of descriptors.
protected virtual int SimpleTypeHashCode(ITypeDescriptor obj)
Parameters
objITypeDescriptorThe ITypeDescriptor to get the hashcode of
Returns
- int
The computed hashcode
Remarks
This is called by GetHashCode(ITypeDefOrRef) for non-TypeSignatures. Overrides of
this method should, as much as possible, compare obj directly.