Редактировать: Чтобы было ясно, мне все равно, если это csproj. Я просто хочу иметь возможность глобально определить корневое имя для всех моих маршрутов.
Я новичок в DotNet Core 2 и C # в целом. Я создаю шаблон webapi для использования остальной частью моей команды, но я хочу иметь возможность использовать имя csproj как часть маршрута, чтобы людям не приходилось менять его на каждом контроллере.
Так, например:
WebStoreAbc.csproj
--------
[Route("api/v1/#CSPROJNAME#/products")]
public class ProductsController : Controller
{
... controller logic ...
}
Registers at runtime as:
/api/v1/WebStoreAbc/products
Таким образом, мне не нужно настраивать маршруты для группы контроллеров каждый раз, когда я делаю новый проект из шаблона.
Редактировать 2: Я использовал ответ Махмуда Херетани ниже и подправил его.
string projectName = "template";
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "api/v1/" + projectName.ToLower() + "/{controller=Home}/{action=Index}/{id?}");
});
}