我最近遇到了一个dependecy resolution错误,我希望有人在这里解释.
我有一个在3rdparty程序集(I3rdParty)中定义的接口,一个依赖于该程序集的“common”程序集和一个依赖于“common”程序集的“client”库.
我们称之为3rdparty.dll,common.dll和client.dll.
client.dll不应该与3rdparty.dll有依赖关系.
在common.dll中定义了以下内容:
public static class Factory { public static object Create(I3rdParty ifc) { ... } public static object Create(string value1,string value2,long? value3 = null) { ... } }
var instance = Factory.Create("SomeValue","SomeValue2");
在这一点上,一切都按预期工作.
然后在common.dll中的第一个工厂方法中引入了bool参数,因此它变为:
public static object Create(I3rdParty ifc,bool value) { ... }
然后,client.dll的构建由于缺少对3rdparty.dll的依赖而开始失败,例如:
The type 'I3rdParty' is defined in an assembly that is not referenced...
我假设这与此有关,方法现在接受相同数量的参数(因为第二个Create方法的第三个参数默认为null).
但我认为它仍然可以根据参数的类型选择正确的Create方法.谁能解释我所看到的行为的原因?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。