Should we make the protected virtual methods public and marked with [NonAction]?
After investigating this, making those methods public will make it show up in the following lookup table even though those methods are marked as NonActioin. The NonAction attribute will be executed last in the action selector's SelectAction method.
ILookup<string, HttpActionDescriptor> actionMappings = actionSelector.GetActionMapping(controllerDescriptor);
for example, the conventions to figure out if the action existed on the controllers will now see those "NonAction" methods, which is not desired.
we can revisit this once we fix the web api bug.
After investigating this, making those methods public will make it show up in the following lookup table even though those methods are marked as NonActioin. The NonAction attribute will be executed last in the action selector's SelectAction method.
ILookup<string, HttpActionDescriptor> actionMappings = actionSelector.GetActionMapping(controllerDescriptor);
for example, the conventions to figure out if the action existed on the controllers will now see those "NonAction" methods, which is not desired.
we can revisit this once we fix the web api bug.