Code/SboxSuperuser/Engine/CommandDiscovery/HandlerSignature6.cs

A validator for command handler methods that take six generic parameters. It checks that a MethodDescription can create a closed delegate of either Func<T1,T2,T3,T4,T5,T6,CommandResult> or Func<T1,T2,T3,T4,T5,T6,Task<CommandResult>> depending on the method return type, without invoking the handler.

Reflection
namespace SboxSuperuser.Engine.CommandDiscovery;

internal sealed class HandlerSignature6<T1, T2, T3, T4, T5, T6> : IHandlerSignature
{
	/// <summary>Checks closed delegate binding without executing the handler.</summary>
	public void Validate( Sandbox.MethodDescription method )
	{
		if ( method.ReturnType == typeof( CommandResult ) )
		{
			_ = method.CreateDelegate<Func<T1, T2, T3, T4, T5, T6, CommandResult>>();
		}
		else
		{
			_ = method.CreateDelegate<Func<T1, T2, T3, T4, T5, T6, Task<CommandResult>>>();
		}
	}
}