0
我在解析在UnityContainer中注册的类型时遇到问题。在我的引导程序中,我忽略了ConfigureContainer方法。现在,这种方法看起来像这样UnityContainer无法解析类型
protected override void ConfigureContainer()
{
base.ConfigureContainer();
RegisterTypeIfMissing(typeof(IView<ShellViewModel>), typeof(Shell), false);
RegisterTypeIfMissing(typeof(CommandReaderWriter), typeof(CommandReaderWriter), true);
}
然后在功能CreateShell(也bootstraper)我想类型CommandReaderWriter的情况,所以我做这个
var raeder = Container.TryResolve<CommandReaderWriter>();
可惜的是这将返回空值。我也试过
var anotherReader = Container.TryResolve(typeof (CommandReaderWriter));
但它并没有把戏。但有趣的是,
var isRegistered = Container.IsTypeRegistered(typeof (CommandReaderWriter));
返回true。
那么在UnityContainer中注册singletone的方法是什么?
我不知道UnityBootstrapper,但我敢打赌RegisterTypeIfMissing期望第一个参数是一个接口,而不是一个类。你能到达IUnityContainer并只使用普通的Unity方法进行注册吗? – ErnieL 2012-02-20 19:39:40