Interface IMethodShape
- Namespace
- PolyType.Abstractions
- Assembly
- PolyType.dll
Provides a strongly typed shape model for a given .NET method.
public interface IMethodShape
Properties
AttributeProvider
Gets the provider used for method-level attribute resolution.
IGenericCustomAttributeProvider AttributeProvider { get; }
Property Value
Remarks
Provides fast attribute resolution when using the source generator, otherwise this is wrapping standard reflection-based attribute resolution.
When using the source generator, the following categories of attributes are excluded to reduce trimmed application size:
System.Runtime.CompilerServices.*- Compiler-generated attributesSystem.Runtime.InteropServices.*- COM interop attributesSystem.Diagnostics.*- Diagnostic attributesSystem.Reflection.DefaultMemberAttribute- Default member metadataSystem.CLSCompliantAttribute- CLS compliance markerMicrosoft.FSharp.Core.*- F# compiler generated attributes- Attributes marked with unmet ConditionalAttribute annotations
DeclaringType
Gets the shape of the declaring type for the method.
ITypeShape DeclaringType { get; }
Property Value
IsAsync
bool IsAsync { get; }
Property Value
IsPublic
Gets a value indicating whether the method is declared public.
bool IsPublic { get; }
Property Value
IsStatic
Gets a value indicating whether the method is static.
bool IsStatic { get; }
Property Value
IsVoidLike
bool IsVoidLike { get; }
Property Value
Remarks
When true the ReturnType is reported as Unit,
MethodBase
Gets the underlying MethodBase corresponding to the method, if applicable.
MethodBase? MethodBase { get; }
Property Value
Name
Gets the name of the method.
string Name { get; }
Property Value
Parameters
Gets the shapes of the parameters accepted by the method.
IReadOnlyList<IParameterShape> Parameters { get; }
Property Value
ReturnType
Gets the shape of the return type of the method.
ITypeShape ReturnType { get; }
Property Value
Methods
Accept(TypeShapeVisitor, object?)
Accepts an TypeShapeVisitor for strongly-typed traversal.
object? Accept(TypeShapeVisitor visitor, object? state = null)
Parameters
visitorTypeShapeVisitorThe visitor to accept.
stateobjectThe state parameter to pass to the underlying visitor.