Mandane - это легкая веб -структура «без волшебства» для .NET.
Этот пакет позволяет размещению обыденного приложения с ASP.NET.
Смотрите мирскую документацию для получения дополнительной информации.
Установите пакет Mundane.hosting.aspnet Nuget, затем в вашем app.UseMundane(); Прохождение конфигурации маршрутизации и зависимостей.
public void Configure ( IApplicationBuilder app , IWebHostEnvironment env )
{
var dependencies = new Dependencies (
new Dependency < Configuration > ( new Configuration ( env ) ) ,
new Dependency < DataRepository > ( request => new DataRepositorySqlServer (
request . Dependency < Configuration > ( ) . ConnectionString ) ) ) ;
var routing = new Routing (
routeConfiguration =>
{
routeConfiguration . Get ( "/" , HomeController . HomePage ) ;
routeConfiguration . Get ( "/data/{id}" , DataController . GetData ) ;
routeConfiguration . Post ( "/data/{id}" , DataController . UpdateData ) ;
} ) ;
app . UseMundane ( dependencies , routing ) ;
} Конечные точки могут быть выполнены в другой части трубопровод ASP.NET, вызывая MundaneMiddleware.ExecuteRequest() . Например, вы можете выполнить пользовательскую обработку ошибок, в то же время используя мирский двигатель.
Пропуск текущего HttpContext и конфигурация маршрутизации и зависимостей выполнит конечную точку, которая соответствует запросу.
public static async ValueTask ExecuteRequest (
HttpContext context ,
DependencyFinder dependencyFinder ,
Routing routing )Также возможно выполнить конечную точку Specifc с:
public static async ValueTask ExecuteRequest (
HttpContext context ,
DependencyFinder dependencyFinder ,
MundaneEndpoint endpoint ,
Dictionary < string , string > routeParameters ) Конечная точка должна быть MundaneEndpoint , которая имеет фирменную ValueTask<Response> Endpoint(Request request) . Любая из других обыденных сигнатур конечной точки может быть преобразована в MundaneEndpoint , вызывая MundaneEndpointFactory.Create() EG
MundaneEndpointFactory . Create ( ( ) => Response . Ok ( o => Write ( "Hello World!" ) ) ) ; Поскольку в этой версии ExecuteRequest() нет информации о маршрутизации, вы также должны предоставить соответствующий словарь routeParameters для конечной точки. При вызове как часть трубопровода Mandane создает словарь параметров, захваченных из URL, например, для маршрута /my-endpoint/{id} , называемого с /my-endpoint/123 , Mandane проходит new Dictionary<string, string> { { "id", "123" } } как routeParameters .
Если конечная точка не требует параметров маршрута, передайте пустой словарь: new Dictionary<string, string>(0); Полем