Это включает в себя три отдельных сборки.
В AssemblyA
у меня InterfaceA
.
InterfaceA
наследует интерфейс от AssemblyB
с именем InterfaceB
, а также другой интерфейс от AssemblyA
с именем InterfaceAWithMethod
.то есть
Public Interface InterfaceA
Inherits InterfaceAWithMethod, InterfaceB
Function MainMethod() As Boolean
End Interface
Public Interface InterfaceAWithMethod
Function DoStuff() As Boolean
End interface
, а в вышеприведенном AssemblyA
имеется ссылка на AssemblyB
.
Теперь у меня есть отдельная сборка, которая называется AssemblyC
.AssemblyC
имеет ссылку на AssemblyB
и работает с экземпляром InterfaceA
.Я использую репозиторий, чтобы получить экземпляр InterfaceA
, а затем вызываю DoStuff()
в моем экземпляре.
Dim myInstanceOfA = myRepo.GetInterfaceAInstance()
myInstanceOfA.MainMethod() 'There is no error here.
myInstanceOfA.DoStuff() 'I DO get an error here.
Visual Studio полностью распознает метод DoStuff()
, но утверждает, что здесь есть ошибка, в частности
Ссылка, необходимая для сборки 'AssemblyB, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null ', содержащий тип InterfaceB
.Добавьте один к своему проекту
DoStuff
не имеет ссылок на что-либо в AssemblyB
и относится к AssemblyA
, почему я должен ссылаться на AssemblyB
?Кроме того, почему MainMethod
работает без ссылки, когда он также просто находится в AssemblyA
и не имеет ничего общего с AssemblyB
?