Инверсируйте корень композиции для инжектора конструктора - PullRequest
0 голосов
/ 09 октября 2018

Я из c # фона.Я новичок в Angular 6. Я узнал, что есть библиотека, похожая на ninject для DI.Inversify.Я пытался использовать его в приложении.

Я настроил привязки и типы.

TYPES.ts

const TYPES = {
    IAppService : Symbol.for("IAppService")
};

export {TYPES}

Bindings.ts

import 'reflect-metadata';
import { Container } from "inversify"
import { TYPES } from "./TYPES"
import { IAppService } from "./services/IAppService"
import { AppService } from "./services/AppService"


const inversifyContainer = new Container();
inversifyContainer.bind<IAppService>(TYPES.IAppService).to(AppService).inSingletonScope();

export { inversifyContainer };

И мой класс, который я вводю APPService

    import { inject } from "inversify";
    import { Component, OnInit } from '@angular/core';
    import { AppModel } from './model/AppModel'
    import { IAppService } from './services/IAppService';
    import { TYPES } from "./TYPES";


    @Component({
        selector: 'summary-app',
        templateUrl: './summary-app.component.html'
    })
    export class SummaryApp implements OnInit {

        private _service: IAppService;

        constructor(
            @inject(TYPES.IAppService) service: IAppService,
        ) {
            this._service = service;
        }
}

Module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppService } from "./services/AppService"
import { SummaryApp } from './summary-app.component';

@NgModule({
  declarations: [
    SummaryApp
  ],
  imports: [
    BrowserModule
  ],
  providers: [
    AppService
  ],
  bootstrap: [SummaryApp]
})
export class AppModule {
}

Компиляция прошла успешно.Но я получаю ошибку времени выполнения Не удается разрешить все параметры для SummaryApp

Это означает, что Inversify не может разрешить зависимость.Я вижу много примеров, когда люди разрешали зависимость, используя сервис-локатор.Но я чувствую его анти образец.Где взять корень композиции для контейнера Inversify?

...