两个库引用相同的DLL

时间:2014-11-21 16:59:18

标签: c# class-library

假设我在C#中有两个类库,而我想在这些库中使用这些库:

LibA.dll
LibB.dll which also references LibA.dll because it uses some of its classes.
Project C which references both LibA.dll and LibB.dll

让我们在LibB.dll内部说我有一个从LibA.dll返回类类型的方法,在我的项目中,我想在调用该方法时立即设置正确的类类型。例如:

LibA.classInsideLibA myObj = LibB.getClassInsideLibAInstance();

这应该有效,但我想知道当LibA.dll已经引用LibB.dll时,在我的项目内部引用LibB.dllLibA.dll时是否会出现任何问题。在这种情况下,引用LibB.dll会自动引用LibA.dll吗?

2 个答案:

答案 0 :(得分:1)

“。在这种情况下,引用LibB.dll会自动引用LibA.dll”

我假设我们正在讨论VS项目中的引用。当然所有dll都必须在运行时可用

这取决于。如果你有projX-> DLLA-> DLLB

如果DLLA使用DLLB但不暴露任何DLLB类型(即在其中一个方法中返回DLLB类),那么ProjA不需要知道DLLB

如果DLLA确实返回DLLB类,则projA需要引用DLLA和DLLB

答案 1 :(得分:1)

你已经一直这样做了。以string课程为例,假装你是LibA。我确定您有一个返回string的库。您还可能在您的主项目中从您的库引用mscorlib(其中String生活)中返回了一个字符串。

这没什么不同。

System.String myString = LibB.GetSomeString();