using System.Threading.Tasks;
namespace EmbedIO.WebApi
{
///
/// Represents an attribute, applied to a parameter of a web API controller method,
/// that causes the parameter to be passed deserialized data from a request.
///
/// The type of the controller.
/// The type of the data.
///
public interface IRequestDataAttribute
where TController : WebApiController
where TData : class
{
///
/// Asynchronously obtains data from a controller's context.
///
/// The controller.
/// The name of the parameter that has to receive the data.
/// a whose result will be the data
/// to pass as a parameter to a controller method.
Task GetRequestDataAsync(TController controller, string parameterName);
}
}