创建需要引用主程序的库

时间:2014-04-15 16:26:39

标签: c# dll

我有一个构建引擎,我正在添加自定义。

我添加的自定义是一个库的形式,其中包含特定于Subversion的函数。

我的问题是,现在我已将此功能分为主exe和几个dll,这个dll需要引用主项目(exe)中的一些类。

例如:

我的构建引擎程序包含一个“项目类”。

SVN dll具有签名功能:

SVNSourceControl(Project project, Logger logger)

我实例化SVN类,引用了我构建的Project以及为我执行日志记录的Logger。

记录器很好,因为我将它分成另一个dll并添加了引用。

  1. 我是否需要将“项目”类分成单独的dll并添加引用?
  2. 我是否需要添加对我的dll的引用,这是对我的主exe及其中的类的引用?
  3. 我是否需要对库进行重新编码以解决它的问题? (希望不是:))
  4. 感谢。

1 个答案:

答案 0 :(得分:1)

您可以做的一件事就是为您的Project类创建一个界面,公开您需要在库中访问的Project部分:

public interface IProject
{
    string Name { get; }
}

然后更改您的SVNSourceControl()方法以接受界面而不是类:

SVNSourceControl(IProject project, Logger logger)

完成后,剩下的就是在主exe中定义Project作为实施IProject

public class Project : myDllNamespace.IProject
{
    public string Name { get; private set; }

    // Whatever else
}

这假设包含IProject接口和SVNSourceControl()方法的dll已添加为主dll的引用。如果那不是真的,你也必须这样做。