Tôi chưa bao giờ sử dụng Windsor trước đây nhưng đã sử dụng các khung công tác DI khác và hiện tại tôi có một vấn đề khá lạ.Castle Windsor 3 với đối số hàm tạo là chuỗi
Tôi có một lớp nhà máy mà phải mất một chuỗi trong constructor của nó, tuy nhiên bất cứ khi nào tôi cố gắng và giải quyết các đối tượng mà tôi nhận được một ngoại lệ nói:
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>
Lớp trông giống như sau:
public interface IDummyFactory
{
void DoSomething();
}
public class DummyFactory : IDummyFactory
{
private string someString;
public DummyFactory(string someConstructorArg)
{
someString = someConstructorArg;
}
}
Với thiết lập DI bên dưới:
var someString = "some constructor arg";
_container.Register(Component.For<IDummyFactory>().ImplementedBy<DummyFactory>().DependsOn(someString));
Tôi giả định rằng nó đang cố gắng thực hiện một số loại đúc hoặc định dạng gây ra nó để bom ra, nhưng như loại chính nó là một chuỗi, và biến được chuyển trong một chuỗi ... nó thậm chí có thể là một trường hợp mà nó đang cố gắng để ánh xạ các loại biến đó chứ không phải là nội dung thay đổi, nhưng tôi không biết đủ về khuôn khổ DI và các tài liệu xung quanh khu vực này
Phiên bản Castle Windsor nào? –