PostSharp SDK 6.10 / / Class Reference / Post­Sharp.​Sdk.​Code­Model Namespace / Type­Signature Class

TypeSignature Class

Represents a type construction (pointer, array, generic type instance, intrinsic, ...).
Inheritance Hierarchy
System.Object
  PostSharp.Sdk.CodeModel.TypeSignature
    More...

Namespace:  PostSharp.Sdk.CodeModel
Assembly:  PostSharp.Compiler.Engine (in PostSharp.Compiler.Engine.dll) Version: 6.10.14.0 (6.10.14.0)
Syntax
C#
public abstract class TypeSignature : ITypeSignature, 
	IModuleElement, IVisitable<ITypeSignature>, IGeneric, IEquatable<ITypeSignature>, 
	IWriteReflectionName

The TypeSignature type exposes the following members.

Properties
  NameDescription
Public propertyAssemblyQualifiedName
Public propertyDeclaringAssembly
Gets the declaring assembly.
Public propertyElementType
Gets the textWriter TypeSignature, i.e. the next element of the chains of type signature element.
Public propertyIsGenericInstance
Determines whether the current instance is a generic instance, i.e. whether it has been constructed from a generic definition.
Public propertyIsSealed
Public propertyModule
Gets the declaring module.
Public propertyName
Public propertyTypeSignatureElementKind
Methods
  NameDescription
Public methodContainsGenericArguments
Public methodEquals(Object)
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Public methodEquals(ITypeSignature)
Indicates whether the current object is equal to another object of the same type.
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodGetCanonicalHashCode
Gets a hash code that is invariant under type signature equality (i.e. if two types are equal under IEquatable<T>, they have the same canonical hash code).
Public methodGetGenericContext
Gets the generic context inside the scope of the generic instance.
Public methodGetHashCode
Serves as the default hash function.
(Inherited from Object.)
Public methodGetSystemType(Type[], Type[])
Gets the system, runtime Type corresponding to the current type.
Public methodGetSystemType(Type[], Type[], BindingOptions)
Gets the system, runtime Type corresponding to the current type.
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetTypeDefinition()
Public methodGetTypeDefinition(BindingOptions)
Finds in the current domain the TypeDefDeclaration corresponding to the current type and specifies BindingOptions.
Public methodGetValueSize
Gets the size of the value type.
Public methodIsValueTypeSafe
Public methodMapGenericArguments
Resolves all generic arguments in the current type signature.
Public methodMatchesReference
Determines whether the current type signature matches a given type signature.
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodTranslate
Public methodVisit
Public methodWriteReflectionName(StringBuilder, ReflectionNameOptions)
Writes the name of the current declaration to a StringBuilder.
Public methodWriteReflectionName(StringBuilder, ReflectionNameOptions, NameMapper)
Writes the name of the current declaration to a StringBuilder and specifies a NameMapper.
Extension Methods
  NameDescription
Public Extension MethodFindMethod(IMethod)Overloaded. (Defined by TypeSignatureExtensions.)
Public Extension MethodFindMethod(String, IMethodSignature, BindingOptions)Overloaded. (Defined by TypeSignatureExtensions.)
Public Extension MethodGetAssignmentDistance(ITypeSignature)Overloaded. (Defined by TypeSignatureExtensions.)
Public Extension MethodGetAssignmentDistance(ITypeSignature, GenericMap)Overloaded. (Defined by TypeSignatureExtensions.)
Public Extension MethodGetDisplayName
Gets the name of a given declaration as it should be displayed to the user.
(Defined by WriteReflectionNameExtensions.)
Public Extension MethodGetReflectionName()Overloaded.
Gets the name of a given declaration and returns a string that is compatible with the result of the ToString method of system reflection objects.
(Defined by WriteReflectionNameExtensions.)
Public Extension MethodGetReflectionName(ReflectionNameOptions)Overloaded.
Gets the name of a given declaration and returns a string that is compatible with the result of the ToString method of system reflection objects.
(Defined by WriteReflectionNameExtensions.)
Public Extension MethodGetReflectionName(ReflectionNameOptions, NameMapper)Overloaded.
Gets the name of a given declaration, constructed using given options.
(Defined by WriteReflectionNameExtensions.)
Public Extension MethodIs<T> (Defined by TypeSignatureExtensions.)
Public Extension MethodIsAbstract (Defined by TypeSignatureExtensions.)
Public Extension MethodIsAssignableFromRuntimeType (Defined by TypeSignatureExtensions.)
Public Extension MethodIsAssignableFromRuntimeValue
Determines whether a given type signature can be assigned a given runtime value.
(Defined by TypeSignatureExtensions.)
Public Extension MethodIsAssignableTo(ITypeSignature)Overloaded.
Determines whether instances of the current type is assignable to locations of a specified type (i.e. whether the current type derives or implements this type).
(Defined by TypeSignatureExtensions.)
Public Extension MethodIsAssignableTo(ITypeSignature, GenericMap)Overloaded.
Determines whether instances of the current type is assignable to locations of a specified type (i.e. whether the current type derives or implements this type) and specifies a GenericMap.
(Defined by TypeSignatureExtensions.)
Public Extension MethodIsAssignableToRuntimeType (Defined by TypeSignatureExtensions.)
Public Extension MethodIsByRef (Defined by TypeSignatureExtensions.)
Public Extension MethodIsDelegate (Defined by TypeSignatureExtensions.)
Public Extension MethodIsEnum (Defined by TypeSignatureExtensions.)
Public Extension MethodIsInterface (Defined by TypeSignatureExtensions.)
Public Extension MethodIsIntrinsic (Defined by TypeSignatureExtensions.)
Public Extension MethodIsNullable
Determines whether a given type signature can be assigned a null value.
(Defined by TypeSignatureExtensions.)
Public Extension MethodIsPointer(Nullable<Boolean>)Overloaded. (Defined by TypeSignatureExtensions.)
Public Extension MethodIsPointer(Nullable<Boolean>, PointerTypeSignature)Overloaded. (Defined by TypeSignatureExtensions.)
Public Extension MethodIsValueType
Returns true if the type signature is a value type; false if it's a reference type; and throws a NullReferenceException if it's a generic parameter or if for some other reason we don't know if it's value or reference type. Consider using IsValueTypeSafe() == true instead.
(Defined by TypeSignatureExtensions.)
Public Extension MethodToType (Defined by TypeSignatureExtensions.)
Remarks

A type signature is composed of chains of type signature elements. Elements are instances of types of the PostSharp.Sdk.CodeModel.TypeSignatures namespace. All element types are derived from TypeSignature. The ElementType property gives the next element of the chain.

For instance, the type signature int * pinned is a chain formed by PinnedTypeSignature , PointerTypeSignature and IntrinsicTypeSignature. This type signature would be instantiated by the following code:

TypeSignature sig = TypeSignature.MakeIntrinsic(PrimitiveType.Int32).MakePointer(true).MakePinned();

The TypeSignature type defines the common functionalities of all type signature elements.

Instances of all types derived from TypeSignature are immutable.

See Also
Inheritance Hierarchy