Abstractions
Installation
dotnet add package Dosaic.Hosting.Abstractions<PackageReference Include="Dosaic.Hosting.Abstractions" Version="" />Usage
Creating a Plugin
using Dosaic.Hosting.Abstractions.Plugins;
using Microsoft.Extensions.DependencyInjection;
namespace MyCompany.MyPlugin
{
public class MyPlugin : IPluginServiceConfiguration, IPluginApplicationConfiguration
{
public void ConfigureServices(IServiceCollection serviceCollection)
{
serviceCollection.AddTransient<IMyService, MyService>();
}
public void ConfigureApplication(IApplicationBuilder applicationBuilder)
{
applicationBuilder.UseMyMiddleware();
}
}
}Plugin Interfaces
Interface
Method
Purpose
Plugin execution order
Plugin namespace
Execution order
IPluginServiceConfiguration
IPluginApplicationConfiguration
IPluginEndpointsConfiguration
IPluginHealthChecksConfiguration
IPluginControllerConfiguration
IPluginConfigurator
Attributes
[Configuration]
[Configuration][Middleware]
[Middleware]Middleware
Order
Behaviour
[ReadinessCheckAttribute]
[ReadinessCheckAttribute][LivenessCheckAttribute]
[LivenessCheckAttribute][YamlTypeConverterAttribute]
[YamlTypeConverterAttribute]HealthCheckTag
Instance
Value
Exceptions
Exception
Default HTTP status
Error Response Models
IImplementationResolver
IFactory<T>
Metrics
Tracing
DosaicDiagnostic
Constant
Value
Purpose
TracingExtensions
Serialization
IKindSpecifier — Polymorphic deserialization
Utility Extensions
ObjectExtensions — DeepPatch
StringExtensions
ConfigurationExtensions
TypeExtensions
EnumerableExtensions
EnumExtensions
GlobalStatusCodeOptions
ApiMiddleware
Last updated