2017-03-22 9 views
1

코어 콘솔 앱에 dependency injection을 가져오고 appsettings.json file을 사용하려고했습니다.dotnet 코어 autofac 및 json 구성은 모두 콘솔 앱에서 함께 작동 할 수 있습니다.

그러나 두 가지 예를 찾을 수는 없습니다. 다음은

당신은 내가 설정 파일을 설정하는 builder2 변수가 있지만 그때는 의존성 삽입에 대한 빌더 변수를 필요로 볼 수 있습니다 내 Main()

private static IContainer SetupDependencyInjection() 
{ 
     var builder2 = new ConfigurationBuilder() 
     .SetBasePath(Directory.GetCurrentDirectory()) 
     .AddJsonFile("appsettings.json"); 

     var builder = new ContainerBuilder(); 

     builder.RegisterAssemblyTypes(
      typeof(Program).GetTypeInfo().Assembly // Console 
     ) 
     .AsSelf() 
     .AsImplementedInterfaces(); 

     var container = builder.Build(); 

     return container; 
    } 

내부에서이를 설정해야하는 방법입니다 .

이것에 대한 아이디어가 있습니까?

+0

에 대한 Autofac documentation JSON/XML Configuration를 참조하십시오? http://docs.autofac.org/en/latest/configuration/xml.html – Steven

+0

문서의이 문장에 유의하십시오. "컴파일 타임에 구체적인 클래스를 선택하거나 구성 할 수없는 경우 JSON 또는 XML을 사용하는 것이 좋습니다." – Steven

답변

2

Autofac는 모두 등록을 구성하여 autofac.json 파일 및 등록에 구성한 것이 경우 귀하의 ConfigurationBuilder

// Add the configuration to the ConfigurationBuilder. 
var config = new ConfigurationBuilder(); 
config.AddJsonFile("autofac.json"); 

// Register the ConfigurationModule with Autofac. 
var module = new ConfigurationModule(config.Build()); 
var builder = new ContainerBuilder(); 
builder.RegisterModule(module); 

// configure whatever you want at runtime the ContainerBuilder 
builder.RegisterType<Foo>().As<IFoo>(); 

// build the container 
IContainer container = builder.Build(); 

에서 제공하는 Iconfiguration를 사용하여 구축 될 수 ConfigurationModule 클래스를 제공한다 당신의 코드. 당신이이 글을 읽을나요

자세히

+0

감사합니다. @Cyril. 하나의 질문. autofac.json 나는 그 파일을 가지고 무엇을하고 있는지 전혀 모릅니다. 모든 등록이 인라인되어있어서 기쁩니다. 하지만 내 application.json은 어디에 속해 있습니까? autofac.json에는 응용 프로그램 변수가 아닌 autofac 코드 만 들어있는 것처럼 보입니다. – Matt

+0

모든 등록이 인라인으로되어있어서 행복하다면 왜 json 구성 파일을 사용하고 싶습니까? 그것은 선택적 기능이며 * Autofac *에는 필요하지 않습니다. 만약 당신이 그것을 원하지 않는다면,'ConfigurationModule' 모듈을 설정하지 마십시오 :) –

+2

아마 내가 질문에 더 많은 사과를 설명 했어야합니다. json에 autofac config를 넣고 싶지 않지만 appsettings.json (응용 프로그램 설정)을 사용하고 싶습니다. web.config와 매우 비슷합니다. 나는 appsettings.json을 사용하고 강하게 입력하는 등의 예제를 보았지만 종속성 주입이 사용되는 경우에는 그렇지 않습니다. 나는 그것이 가능하다고 확신하지만 코드에서 링크를 놓치고 있습니다. – Matt