The argument of BuildEligibility(IEligibilityBuilder<T>). Allows aspect implementations to define eligibility requirements using extension methods from EligibilityExtensions.
Namespace: Metalama.Framework.Eligibility
Assembly: Metalama.Framework.dll
Syntax
public interface IEligibilityBuilder<out T> : IEligibilityBuilder where T : classType Parameters
| Name | Description |
|---|---|
| T | Type of declaration being validated for eligibility. |
Remarks
Use extension methods from EligibilityExtensions to add eligibility rules. Common methods include:
- MustNotBeStatic(IEligibilityBuilder<IMemberOrNamedType>) - Requires instance members only
- MustNotBeAbstract(IEligibilityBuilder<IMemberOrNamedType>) - Requires concrete implementations
- MustSatisfy<T>(IEligibilityBuilder<T>, Predicate<T>, Func<IDescribedObject<T>, FormattableString>) - Defines custom eligibility conditions
- DeclaringType<T>(IEligibilityBuilder<T>) - Validates the declaring type
- ReturnType(IEligibilityBuilder<IMethod>) - Validates method return types
- Parameter(IEligibilityBuilder<IHasParameters>, int) - Validates method parameters
For complex scenarios, use If<T>(IEligibilityBuilder<T>, Predicate<T>) to apply conditional rules, or MustSatisfyAny<T>(IEligibilityBuilder<T>, params Action<IEligibilityBuilder<T>>[]) to specify alternatives.
Methods
| Name | Description |
|---|---|
| AddRule(IEligibilityRule<T>) | Adds a rule to the current builder. |