我有这个类和接口
public interface IA{
void Load();
}
public interface IB : IA{
}
public class B : IB{
public void Load(){
//some code
}
}
我为类型IB
B
Microsoft Unity
解析IB
以更正B
类型,但当我尝试调用加载时,它会显示错误IB does not contain a definition for 'Load'
这是我的统一配置
var unityContainer = new UnityContainer();
unityContainer.RegisterType<IB, B>();
var obj = unityContainer.Resolve<IB>();
obj.Load()
答案 0 :(得分:1)
IB不包含Load()的定义,但是IA确实如此,因此您必须通过统一解析IA到B,或者一旦解析IB,将其转换为IA。
更新1:我必须同意其他人的观点,即OP代码可以正常工作并使用Unity正确解析(使用.NET 4.5.2和Unity 2.1.505.2进行测试)。我不确定为什么我的上述建议解决了OP问题,因此原始问题中必须省略一些细节。
更新2:基于@ will documentation
的工作小提琴