Non ho mai usato Windsor prima ma ho utilizzato altri framework DI e al momento ho un problema piuttosto strano.Castle Windsor 3 con argomento costruttore come stringa
ho una classe fabbrica che prende una stringa nel suo costruttore, tuttavia ogni volta che provo e risolvere tale oggetto ottengo un'eccezione dicendo:
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>
La classe simile a:
public interface IDummyFactory
{
void DoSomething();
}
public class DummyFactory : IDummyFactory
{
private string someString;
public DummyFactory(string someConstructorArg)
{
someString = someConstructorArg;
}
}
Con l'installazione dI seguito:
var someString = "some constructor arg";
_container.Register(Component.For<IDummyFactory>().ImplementedBy<DummyFactory>().DependsOn(someString));
io parto dal presupposto che sta cercando di fare un po ' tipo di casting o formattazione che sta causando il bombardamento, ma poiché il tipo stesso è una stringa e la variabile viene passata in una stringa ... potrebbe anche essere un caso che stia cercando di mappare il tipo di quella variabile piuttosto che il contenuto variabile, ma non so abbastanza sul quadro dI e la documentazione intorno a questa zona
Quale versione di Castle Windsor? –