2015-02-07 2 views
1

github 저장소에서 시작하는 세관 스캐 폴더를 작성하려고합니다. 스카 폴더 프로젝트가 mvc 스캐 폴더 및 다른 클래스 라이브러리의 수정 된 복제본입니다. 내가 사용하려는 때문에 내가에 및 Microsoft.Framework.Runtime.Interfaces Microsoft.Framework.CodeGeneration, Microsoft.Framework.CodeGeneration.Common에을 참조를 추가했다 나의 서재 안에 [NOTNULL] IApplicationEnvironment 내 도서관 프로젝트.
특정 제네레이터를 실행할 때 DI에 몇 가지 요소를 추가하고 싶습니다. 몇 가지 문제가 있습니다.
비계의 DI에 서비스를 추가 할 수 없습니다.

Scaffolder 모듈에서 서비스는 Program 클래스로 구성됩니다.이 초기화 코드를 생성기 시작 부분에 추가하고 싶지만 그 방법을 찾지 못합니다.

프로그램 클래스에 코드를 추가하려고했지만 다른 문제가 있습니다. 라이브러리가 .CodeGeneration 모듈을 참조하고 라이브러리에 정의 된 서비스 클래스를 추가하려면 해당 클래스에 대한 참조를 추가해야합니다. .CodeGeneration project.json, 순환 참조가 있고이 지원되지 않습니다.

어떻게 해결할 수 있습니까?

답변

3

스캐 폴더 구현에서 해당 서비스를 사용할 수 있도록 새 서비스를 정의하고 기본 서비스 컬렉션에 삽입하려고하는 것 같습니다.

서비스 및 구현이 클래스 라이브러리에 정의되어 있으므로 삽입하기 위해 CodeGeneration 클래스 라이브러리를 수정하고 클래스 라이브러리에 대한 참조를 추가해야하며 클래스 라이브러리에서도 사용자 정의 스캐 폴더를 구현하므로 CodeGeneration 클래스 라이브러리를 참조해야합니다! CodeGeneration 아닌 다른 방법을 참조

  1. 당신이 (당신의 포크) CodeGeneration 클래스 라이브러리에 대한 서비스 구현 정의를 이동하고 클래스 라이브러리를하도록 할 수 있습니다 :

    나는이 선택을 참조하십시오.

  2. 서비스 및 구현을 별도의 클래스 라이브러리에 보관하고 CodeGeneration에서이를 참조하고 다른 클래스 라이브러리에서 스 캐 폴더를 구현 한 다음 CodeGeneration을 참조하게하십시오.
우리는 비계 프레임 워크에 다른 구성 요소에서 사용자 정의 서비스를 추가하기위한 지원을 추가하도록 선택할 수 있지만이 아직 아니에요

. 위 선택 중 하나는 그 때까지 당신을 가야합니다.

도움이 될지 알려주세요.

관련 문제