无法解决非可选依赖项

时间:2018-01-10 11:07:08

标签: c# castle-windsor

我有这样的界面:

public interface IdFactory
{
     Id Create(Guid userId);
}

和Castle Windsor定义是这样的:

container.Register(Castle.MicroKernel.Registration
    .Component.For<Id>().ImplementedBy<Id>().LifeStyle.Transient);

调用代码如下所示:

 var ID = IDFactory.Create(new Guid(userId));

我得到的错误是:

  

Castle.MicroKernel.Resolvers.DependencyResolverException:&#39;无法解析&#39; Id&#39;的非可选依赖项(ID)。参数&#39; id&#39;输入&#39; System.Guid&#39;&#39;

这是什么问题?我是否必须在Castle Windsor中配置System.Guid

1 个答案:

答案 0 :(得分:5)

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

public class Id
{
    public Id(Guid userId /*not - Guid id*/)
    {
    }
}