콘솔 응용 프로그램에서 Autofac을 사용하고 싶습니다. 그것은 내 첫 사용법입니다. 그 전에 ASP.NET MVC에서만 사용하고있었습니다. MVC 프로젝트에서 Global.asax에서 Autofac을 설정하고 컨트롤러에 IService를 삽입하면 작동이 더 많고 적을 수 있습니다. 콘솔 응용 프로그램에서 나는 아래처럼 수행 그것의콘솔 응용 프로그램의 자동 열기
internal class Program
{
private static IContainer Container { get; set;}
private static void Main(string[] args)
{
Container = Container.Configure(); // here I have all necessary objects set
// now I can use it in Main method as:
using (var scope = Container.BeginLifetimeScope())
{
scope.Resolve<ISomething>();
}
}
}
당신이 볼 수 있듯이 사용이 단지 홈페이지 방법 간단하다. 외부 수업에서 사용하는 것은 어떨까요? Cat 클래스를 만들고 그 안에 Autofac을 사용한다고 가정합시다. 클래스 프로그램의 컨스트럭터 객체 컨테이너에 전달해야합니까? 예 :
Cat cat = new Cat(Program.Container, "Molly");
아니면 Cat 클래스 내에 IContainer를 만들어야합니까?
최상의 솔루션은 무엇입니까?
메이슨, 귀중한 답변에 감사드립니다. 나는 첫 번째 게시물에서 내 문제를 연장하고 싶습니다. 여러분이 썼을 때 main 메소드 내부에 어떤 객체를 생성 할 수 있습니다. 어떤 경우에 다른 클래스에서 Autofac을 사용하고 싶습니까? 의 내가 있다고 가정 해 봅시다 클래스 ' { 공무원 GetEmployee라는 (소수점 ID가) 나는 다른 서비스를 사용하고자하는 { // 여기에 EmployeeService 공용 클래스 : AutoFac를 사용하여 주입. // 여기에 다시 컨테이너 객체를 만들고 다음을 수행해야합니다. // (var scope = Container.BeginLifetimeScope()) {...} } }' – cube
@ 큐브 당신이 묻는 것을 이해하지 못합니다. 지금. 예, AutoFac을 통해 객체의 인스턴스를 생성하고 생성자 주입을 통해 객체를 주입 할 수 있습니다. – mason
나는 내 주장과 혼동스러워. 그러나 당신은 나의 의심에 대답했다. 다시 감사합니다. – cube