假设我有一个定义接口的库:
namespace LibraryOne
{
public interface ISomething
{
void DoSomething();
}
}
我在第二个库中实现了这个
namespace LibraryTwo
{
public class Something : ISomething
{
public void DoSomething() { throw new Exception("I don't know how to do anything!"); }
}
}
然后我在第三个库中使用这个类
namespace LibraryThree
{
public class MyClass
{
private Something myThing = new Something();
public void DoIt() {
myThing.DoSomething();
}
}
}
Visual Studio 告诉我LibraryThree
必须有参考才能LibraryOne
使此代码正常工作。即使我 makeISomething
internal
和 make LibraryOne
InternalsVisibleTo
LibraryTwo
,我仍然必须有那个参考。 为什么?
如果我真的提到了一个ISomething
,我会理解的。如果我希望Something
表现得像一个ISomething
,我会理解的。但我只需要把它当作一个Something
.