链接c#库的依赖关系

时间:2016-08-19 02:11:54

标签: c# .net visual-studio-2015 .net-4.5

我有项目B,具体取决于项目A,这是一个拥有它自己的依赖项的库。

在项目A中,我引用定义Dependency1Base<T>Dependency2Class的程序集,并定义MyClass,如下所示:

namespace MyNamespace
{
    public class MyClass: Dependency1Base<Dependency2Class>
    {
    }
}

在项目B中,我只是引用项目A并尝试实例MyClass

namespace MyNamespace
{
    public class B
    {
        public void main ()
        {
            var myInstance = new MyClass();
        }
    }
}

项目A构建正常,但是当我尝试构建项目B时,我收到错误,告诉我Dependency1BaseDependency2Class是在程序集中定义的没有引用。因此,我想知道是否有办法在项目A中关联此定义,以便我不必将这些引用添加到项目B中?或者我是否总是需要在使用A的任何其他项目中引用项目MyClass的依赖项?

1 个答案:

答案 0 :(得分:0)

是的,您需要引用您在项目中使用的所有类或对象。但是你不必参考更多。

如果您的班级C继承自B,而A本身则继承自C

B中,您必须引用A,如果您使用来自A的某些属性或方法,则必须引用B

A中,您必须引用install.packages("rJava") install.packages("DBI") install.packages("RJDBC") library(DBI) library(rJava) library(RJDBC) cp <- c( "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/commons-codec-1.3.jar", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/commons-logging-1.1.1.jar", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/hive_metastore.jar", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/hive_service.jar", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/httpclient-4.1.3.jar", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/httpcore-4.1.3.jar", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/libfb303-0.9.0.jar", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/libthrift-0.9.0.jar", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/log4j-1.2.14.jar", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/ql.jar", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/slf4j-api-1.5.11.jar", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/slf4j-log4j12-1.5.11.jar", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/TCLIServiceClient.jar", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/zookeeper-3.4.6.jar" ) .jinit(classpath<-cp) drv <- JDBC("com.cloudera.impala.jdbc4.Driver", "C:/Users/Cloudera_ImpalaJDBC4_2.5.31/ImpalaJDBC4.jar") con <- dbConnect(drv, "jdbc:impala://your_impala_host_address:21050;AuthMech= your authmech number if applicable", "username", "pwd") data <- dbGetQuery(con, "SELECT * FROM mydb limit 25") summary(data)

在A中,你不必参考任何东西。