46 lines
1.1 KiB
C#
46 lines
1.1 KiB
C#
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System;
|
|
using System.Threading;
|
|
using Microsoft.AspNetCore.Mvc.Abstractions;
|
|
|
|
namespace BasicWebSite
|
|
{
|
|
public class ActionDescriptorCreationCounter : IActionDescriptorProvider
|
|
{
|
|
private long _callCount;
|
|
|
|
public long CallCount
|
|
{
|
|
get
|
|
{
|
|
var callCount = Interlocked.Read(ref _callCount);
|
|
|
|
return callCount;
|
|
}
|
|
}
|
|
|
|
public int Order
|
|
{
|
|
get
|
|
{
|
|
return -1000 - 100;
|
|
}
|
|
}
|
|
|
|
public void OnProvidersExecuting(ActionDescriptorProviderContext context)
|
|
{
|
|
}
|
|
|
|
public void OnProvidersExecuted(ActionDescriptorProviderContext context)
|
|
{
|
|
if (context.Results.Count == 0)
|
|
{
|
|
throw new InvalidOperationException("No actions found!");
|
|
}
|
|
|
|
Interlocked.Increment(ref _callCount);
|
|
}
|
|
}
|
|
} |