Как получить доступ к классам в библиотеке со ссылками? - PullRequest
0 голосов
/ 22 апреля 2011

Примечание: я новичок, поэтому вполне может быть совершенно очевидный способ, которого я не узнал.

У меня есть следующие проекты:

TradingProject    (my code)   Has reference to TradingLibrary, and to ApiLibrary?
TradingLibrary    (my code)   Has reference to ApiLibrary
ApiLibrary        (3rd party code)

Я делаю несколько проектов (например, TradingProject) , которые взаимодействуют с программным обеспечением посредством использования существующей ApiLibrary . Но я хочу вставить общие методы в библиотеку, которую я пишу: TradingLibrary .

Тем не менее, я хотел бы использовать некоторые части ApiLibrary напрямую из TradingProject . Однако тогда мне нужно будет передать объект ( ApiLibrary класс) в метод в TradingLibrary . Где объект должен быть распознан . Однако я предполагаю, что это будет проблемой, так как TradingLibrary использует собственную ссылку на ApiLibrary , поэтому не будет распознаваться как те же классы ?

Итак .. Вопрос в том. Есть ли какой-нибудь способ, которым я могу «переслать» ссылку ApiLibrary из TradingLibrary в MyProject, чтобы они использовали одну и ту же ссылку? Или мне нужно дублировать классы и наследовать от ApiLibrary для каждого класса? Как:

NameSpace TradingLibrary
Public Class SomeClass
   Inherits ApiLibrary.SomeClass
End Class 

Полагаю, это сработало бы, если бы я делал это для всех нужных мне классов, но, может быть, есть какой-то более простой способ, о котором я не знаю?

Ура!

Ответы [ 2 ]

1 голос
/ 22 апреля 2011

Если это одна и та же сборка (dll), то тип тот же, и несоответствия не будет.

Если у вас есть несколько версий одной и той же dll, загружаемой в один и тот же домен приложений, то все ужеужасно перепутал.На этом этапе вы можете использовать пересылку через конфигурацию;например, следующие форварды и ссылки MVC 1. * / 2. * на MVC 3.0

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

Но я подчеркиваю: вышеупомянутое обычно не требуется, особенно если вы отправляете свои dll рядом с приложением(вместо того, чтобы использовать GAC).

0 голосов
/ 22 апреля 2011

С какими проблемами вы сталкиваетесь? Затем укажите проблему в явном виде. Я не думаю, что будут проблемы с вашей структурой пространства имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...