DotNetDupe
4.0.6
C++17/20 Implementation of the .NET Base Class Library (BCL)
Toggle main menu visibility
Loading...
Searching...
No Matches
WebApplicationBuilder.h
Go to the documentation of this file.
1
3
4
#pragma once
5
6
#include "
Common.h
"
7
#include "
System/Object.h
"
8
#include "
System/SmartPointer.h
"
9
#include "
System/Collections/Generic/List.h
"
10
#include "
Extensions/DependencyInjection/ServiceCollection.h
"
11
#include "
WebAppCore/Builder/WebApplication.h
"
12
#include "
WebAppCore/Controllers/ControllerRouteBuilder.h
"
13
14
namespace
DotNetDupe
{
15
namespace
WebAppCore
{
16
namespace
Builder
{
17
26
class
WebApplicationBuilder
:
public
virtual
DotNetDupe::System::Object
{
27
public
:
29
DOTNETDUPE_API
WebApplicationBuilder
();
30
32
DOTNETDUPE_API
~WebApplicationBuilder
()
override
=
default
;
33
34
WebApplicationBuilder
(
const
WebApplicationBuilder
&) =
delete
;
35
WebApplicationBuilder
&
operator=
(
const
WebApplicationBuilder
&) =
delete
;
36
39
DOTNETDUPE_API
WebApplicationBuilder
(
WebApplicationBuilder
&& other)
noexcept
;
40
44
DOTNETDUPE_API
WebApplicationBuilder
&
operator=
(
WebApplicationBuilder
&& other)
noexcept
;
45
48
DOTNETDUPE_API
DotNetDupe::Extensions::DependencyInjection::ServiceCollection
&
GetServices
() {
return
m_services; }
49
54
template
<
typename
TController>
55
DotNetDupe::WebAppCore::Controllers::ControllerRouteBuilder<TController>
&
AddController
(
const
DotNetDupe::System::String
& prefix) {
56
// Create route builder
57
auto
routeBuilder =
DotNetDupe::System::SmartPointer<DotNetDupe::WebAppCore::Controllers::ControllerRouteBuilder<TController>
>::NewShared(prefix);
58
auto
& ref = *routeBuilder;
59
60
// Capture lambda to bind routes later on WebApplication
61
m_controllerRegistrars.Add([routeBuilder](
const
DotNetDupe::System::SmartPointer<WebApplication>
& app) {
62
routeBuilder->Register(app);
63
});
64
65
return
ref;
66
}
67
70
DOTNETDUPE_API
DotNetDupe::System::SmartPointer<WebApplication>
Build
();
71
72
private
:
73
DotNetDupe::Extensions::DependencyInjection::ServiceCollection
m_services;
74
DotNetDupe::System::Collections::Generic::List<WebApplication::ControllerRegistrar>
m_controllerRegistrars;
75
};
76
77
}
78
}
79
}
Common.h
Defines common cross-platform macros, export decorators, and fundamental types.
DOTNETDUPE_API
#define DOTNETDUPE_API
Platform-specific linkage decoration for exporting or importing library symbols.
Definition
Common.h:20
ControllerRouteBuilder.h
Fluent route builder for mapping controller action methods to HTTP request endpoints.
List.h
Represents a strongly typed list of objects that can be accessed by index mirroring ....
Object.h
Base object class for DotNetDupe mirroring .NET System.Object.
ServiceCollection.h
SmartPointer.h
Provides reference-counted and weak pointer memory management primitives ensuring zero raw ownership.
WebApplication.h
Represents the web application used to configure the HTTP pipeline and routes mirroring ASP....
DotNetDupe::Extensions::DependencyInjection::ServiceCollection
Default implementation of the IServiceCollection interface.
Definition
ServiceCollection.h:15
DotNetDupe::System::Collections::Generic::List
Represents a strongly typed list of objects accessible by index.
Definition
List.h:29
DotNetDupe::System::Object
Supports all classes in the DotNetDupe class hierarchy.
Definition
Object.h:18
DotNetDupe::System::SmartPointer
A unified smart pointer that supports both unique and shared ownership semantics.
Definition
SmartPointer.h:72
DotNetDupe::System::String
Represents text as a sequence of UTF-8 code units with culture-invariant operations.
Definition
String.h:74
DotNetDupe::WebAppCore::Builder::WebApplicationBuilder::AddController
DotNetDupe::WebAppCore::Controllers::ControllerRouteBuilder< TController > & AddController(const DotNetDupe::System::String &prefix)
Registers an MVC/REST controller and configures its route endpoints under the given URI prefix.
Definition
WebApplicationBuilder.h:55
DotNetDupe::WebAppCore::Builder::WebApplicationBuilder::~WebApplicationBuilder
~WebApplicationBuilder() override=default
Destructor for WebApplicationBuilder.
DotNetDupe::WebAppCore::Builder::WebApplicationBuilder::operator=
WebApplicationBuilder & operator=(const WebApplicationBuilder &)=delete
DotNetDupe::WebAppCore::Builder::WebApplicationBuilder::GetServices
DotNetDupe::Extensions::DependencyInjection::ServiceCollection & GetServices()
Gets the mutable service collection for dependency injection registrations.
Definition
WebApplicationBuilder.h:48
DotNetDupe::WebAppCore::Builder::WebApplicationBuilder::Build
DotNetDupe::System::SmartPointer< WebApplication > Build()
Builds the dependency injection service provider and constructs the configured WebApplication host.
Definition
WebApplicationBuilder.cpp:31
DotNetDupe::WebAppCore::Builder::WebApplicationBuilder::WebApplicationBuilder
WebApplicationBuilder()
Initializes a new instance of the WebApplicationBuilder class.
DotNetDupe::WebAppCore::Builder::WebApplicationBuilder::WebApplicationBuilder
WebApplicationBuilder(const WebApplicationBuilder &)=delete
DotNetDupe::WebAppCore::Controllers::ControllerRouteBuilder
Fluent builder for binding strongly-typed controller actions to HTTP verbs and route templates.
Definition
ControllerRouteBuilder.h:42
DotNetDupe::WebAppCore::Builder
Definition
WebApplication.h:21
DotNetDupe::WebAppCore
Definition
WebApplication.h:20
DotNetDupe
Definition
IServiceCollection.h:7
Include
WebAppCore
Builder
WebApplicationBuilder.h
Generated by
1.18.0