如何访问子引用库中的类?

时间:2011-04-22 08:03:02

标签: c# .net vb.net reference

注意:我是新手,因此很可能是一种我不认识的明显方式。

我有以下项目:

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

我正在制作几个项目(如TradingProject),它们通过使用现有的 ApiLibrary 与软件进行通信。但我想将泛型方法推送到我写的库中: TradingLibrary

不过,我想直接使用 TradingProject ApiLibrary 的某些部分。但是,我需要将对象( ApiLibrary 类)传递给 TradingLibrary 中的方法。应该识别对象的位置。但是我认为这将是一个问题,因为 TradingLibrary 使用它自己对 ApiLibrary 的引用,所以不会被识别为相同的类

所以..问题是。有什么方法可以将ApiLibrary引用从TradingLibrary“转发”到MyProject,这样它们就会使用相同的引用吗?或者我是否需要复制类并从ApiLibrary继承每个类?像:

NameSpace TradingLibrary
Public Class SomeClass
   Inherits ApiLibrary.SomeClass
End Class 

我想如果我为所有需要的课程做这件事,那会有用,但有可能是一些我不知道的简单方法吗?

干杯!

2 个答案:

答案 0 :(得分:1)

如果它是相同的程序集(dll),那么类型是相同的,不会发生不匹配。

如果您将同一个dll的多个版本加载到同一个AppDomain中,那么事情已经非常混乱了。此时,您可以通过配置使用转发;例如,以下转发和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)。

答案 1 :(得分:0)

你有任何问题吗?然后明确指定问题。我不认为您的命名空间结构会有任何问题。