我有一个构建引擎,我正在添加自定义。
我添加的自定义是一个库的形式,其中包含特定于Subversion的函数。
我的问题是,现在我已将此功能分为主exe和几个dll,这个dll需要引用主项目(exe)中的一些类。
例如:
我的构建引擎程序包含一个“项目类”。
SVN dll具有签名功能:
SVNSourceControl(Project project, Logger logger)
我实例化SVN类,引用了我构建的Project以及为我执行日志记录的Logger。
记录器很好,因为我将它分成另一个dll并添加了引用。
感谢。
答案 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的引用。如果那不是真的,你也必须这样做。