Search Results for

    Show / Hide Table of Contents

    Bind Services

    Using [BindService] attribute allows the developer to stablish dependencies with a Service registered in the Application Container.

    // Bind the Graphics Context registered in the Application...
    [BindService]
    private GraphicsContext transform;
    
    Note

    [BindService] can be used inside Services, Components and SceneManagers. In other case the binding cannot be resolved

    [BindService] Properties

    This attribute offers several ways to customize:

    isRequired (default true)

    If the value is true the dependency is required to be resolved, in other case, the current Component won't be attached.

    The isRequired value has the same functionality than [BindComponent] (see [Bind Components](bind_components.md for further details)).

    For example, if this is all Services registered inside the Application Container:

    // Register services into application container...
    this.Container.RegisterType<TimerFactory>();
    this.Container.RegisterType<Random>();
    this.Container.RegisterType<ErrorHandler>();
    this.Container.RegisterType<ScreenContextManager>();
    this.Container.RegisterType<GraphicsPresenter>();
    this.Container.RegisterType<AssetsDirectory>();
    this.Container.RegisterType<AssetsService>();
    this.Container.RegisterType<ForegroundTaskSchedulerService>();            
    this.Container.RegisterType<WorkActionScheduler>();
    

    The following component will be attached because the AssetsService has been registered:

    public class MyComponent : Component
    {
        [BindService]
        private AssetsService assetService;
    
        // ...
    }
    

    However, in that case, the dependency will fail because the Clock service is not registered:

    public class MyComponent : Component
    {
        [BindService]
        private Clock clock;
    
        // ...
    }
    
    In This Article
    Back to top
    Generated by DocFX