Improve DI-related APIs to support custom types #27
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Extend the dependency injection-related APIs.
This PR allows users to use the types defined by them for the node type added to
IServiceCollection
and the builder type used to configure the node.By making
MuninNodeOptions
andMuninNodeBuilder
public and extensible, users can extend them based on these types.In particular, in
MuninNodeBuilder
, by changing it to be able to construct and return any implementation ofIMuninNode
, it becomes possible to register user-extended Munin nodes inIServiceCollection
.In addition, make changes so that
TService
andTImplementation
can be specified when registering nodes inIServiceCollection
.IMuninNodeBuilder
is being deprecated because, onceMuninNodeBuilder
is made public, it will no longer be functional as an abstract interface for defining user-defined builder types.The outline of the API changes is as follows: