Castle Windsor 3 с аргументом конструктора в виде строки

Я никогда раньше не использовал Виндзор, но использовал другие структуры DI, и на данный момент у меня возникла довольно странная проблема.

У меня есть фабричный класс, который принимает строку в своем конструкторе, однако всякий раз, когда я пытаюсь разрешить этот объект, я получаю исключение:

Handler for System.String was not found.

<Message>Handler for System.String was not found.</Message>
<StackTrace>at Castle.MicroKernel.Resolvers.DefaultDependencyResolver
     .TryGetHandlerFromKernel(DependencyModel dependency, CreationContext context) 
     in d:\60b7fa65294e7792\src\Castle.Windsor\MicroKernel\Resolvers\DefaultDependencyResolver.cs:line 403
at Castle.MicroKernel.Resolvers.DefaultDependencyResolver.ResolveCore(CreationContext context, ComponentModel model, DependencyModel dependency) in d:\60b7fa65294e7792\src\Castle.Windsor\MicroKernel\Resolvers\DefaultDependencyResolver.cs:line 270</StackTrace>
<Type>Castle.MicroKernel.Handlers.HandlerException</Type>
</InnerException>
<Message>Missing dependency.
Component SomeExampleFactory has a dependency on System.String, which could not be 
resolved.
Make sure the dependency is correctly registered in the container as a service, or 
provided as inline argument.</Message>

Класс выглядит примерно так:

public interface IDummyFactory
{
    void DoSomething();
}

public class DummyFactory : IDummyFactory
{
    private string someString;

    public DummyFactory(string someConstructorArg)
    {
        someString = someConstructorArg;
    }
}

С настройкой DI ниже:

var someString = "some constructor arg";
_container.Register(Component.For<IDummyFactory>()
                             .ImplementedBy<DummyFactory>()
                             .DependsOn(someString));

Я предполагаю, что он пытается выполнить какое-то преобразование или форматирование, которое заставляет его взорваться, но поскольку сам тип является строкой, а переменная передается в строке ... это может даже быть случай, когда он пытается сопоставить тип этой переменной, а не содержимое переменной, но я недостаточно знаю о структуре DI и документации по этой области

6
задан SteveC 26 April 2018 в 14:16
поделиться