无法解析非可选依赖项

w00*_*977 3 c# castle-windsor

我有这样的界面:

public interface IdFactory
{
     Id Create(Guid userId);
}
Run Code Online (Sandbox Code Playgroud)

而温莎城堡的定义是这样的:

container.Register(Castle.MicroKernel.Registration
    .Component.For<Id>().ImplementedBy<Id>().LifeStyle.Transient);
Run Code Online (Sandbox Code Playgroud)

调用代码如下所示:

 var ID = IDFactory.Create(new Guid(userId));
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Castle.MicroKernel.Resolvers.DependencyResolverException:'无法解析'Id'(Id)的非可选依赖项.参数'id'类型'System.Guid''

这里有什么问题?我必须System.Guid在Castle Windsor 配置吗?

Jan*_*sky 6

工厂方法和要解析的类构造函数的参数名必须相同:

public class Id
{
    public Id(Guid userId /*not - Guid id*/)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)