Skip to content

IoC container extensions #503

@TimofeyBurak

Description

@TimofeyBurak

Detailed Description

Currently, IContainerBuilder interface is our primary abstraction of an IoC container builder. It is used to register different parts of the XToolkit, including WhiteLabel itself. Currently, IContainerBuilder is a part of WhiteLabel project, and thus can be used only within WhileLabel project (WhiteLabel is registered as a part of Bootstrapper class). This means that all other projects don't know anything about the container they will be registered in, so it is developer's responsibilities to register all required parts in specific way manually in the production solution.

Context

#500 has an example of complex push-notification services initialisation, which cannot be simplified with current approach. Also, it shows that currently WhiteLabel controls IoC container creation, even though it can be created (and filled) independently

Possible Implementation

If we move IContainerBuilder interface into XToolkit.Common project (or, alternatively, migrate into using Microsoft.Extensions.DependencyInjection) - it will allow each project implement a shortcuts for IoC container registrations. Even WhiteLabel initialisation can be implemented as an extension, thus further decoupling WhiteLabel with Bootstrapping and removing any interferences with 3-d party integrations

Basic Information

  • Component which need this feature: PushNotifications, Remote, WhiteLabel
  • Version which need this feature: 8af5c6a

Metadata

Metadata

Assignees

No one assigned

    Labels

    c/wlRelated to WhiteLabel component.enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions