想象一下,在您的库A中,您声明了对库B的依赖,您永远不会使用它。
如果您尝试动态加载A和B不在身边,您的应用程序会崩溃吗?或者,只要你打电话的方法没有尝试在B上找到代码就可以了吗?
答案 0 :(得分:3)
这取决于“永不使用”的含义。
在第1种情况下,编译器会在生成libraryA.dll时修剪未使用的引用。您不需要libraryB.dll,运行时也不会尝试加载它。
在案例2中,您可能没问题,但没有任何保证。例如,如果您有一个引用libraryB的类,即使该引用来自您从未调用的方法,运行时仍可能尝试加载libraryB.dll。你有时可以巧妙地构造代码以避免这种负担,但是你正在玩火。最好有libraryB可用。