컨테이너에 등록하지 않고 일부 매개 변수가있는 클래스의 인스턴스를 만들어야합니다 . 컨테이너를 복잡하게하지 않고 종속성이 삽입 된 일부 클래스를 가져와야하는 경우가 종종 있기 때문입니다.
다음은 그 예입니다.
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] 삭제
몇 마디 만하겠습니다