DryIoc에 등록하지 않고 클래스의 인스턴스를 만들고 종속성을 주입하는 방법은 무엇입니까?

게임 게임 20

컨테이너에 등록하지 않고 일부 매개 변수가있는 클래스의 인스턴스를 만들어야합니다 . 컨테이너를 복잡하게하지 않고 종속성이 삽입 된 일부 클래스를 가져와야하는 경우가 종종 있기 때문입니다.

다음은 그 예입니다.

interface IPrinter
{
    void Print(string text);
}
class ConsolePrinter : IPrinter
{
    public void Print(string text) => Console.WriteLine(text);
}
class Thing
{
    public Thing(IPrinter print, string otherParameter)
    {
        // ...
    }
}
class Program
{
    static void Main(string[] args)
    {
        var container = new Container();

        container.Register<IPrinter, ConsolePrinter>();

        // This throws.
        container.Resolve<Thing>(args: new object[] { "something something" });
    }
}

예외가 발생합니다. DryIoc.ContainerException: 'code: UnableToResolveUnknownService, 말이됩니다.

확실히 할 수는 container.Register<Thing>()있지만 이전에 말했듯이 컨테이너에 원치 않는 서비스를 추가합니다.

다디

컨테이너에 대한 WithConcreteTypeDynamicRegistrations 규칙 을 설정하려고 할 수 있습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관