2014-04-15 46 views
0

我有一個構建引擎,我正在爲其添加自定義。創建需要參考主程序的庫

我添加的自定義是以包含特定於Subversion的函數的庫的形式。

我的問題是,現在我已經把這個功能分成了一個主要的exe和幾個dll,這個dll需要引用一些主要項目(exe)中的類。

例如:

我的構建引擎程序包含'項目類'。

的SVN DLL有簽名的功能:

SVNSourceControl(Project project, Logger logger) 

我實例SVN類配合我建項目,以及作爲進行日誌記錄對我來說是記錄器的參考。

的記錄是好的,因爲我已經分居是到另一個DLL並添加引用。

  1. 我是否需要將我的'項目'類分成單獨的dll並添加引用?
  2. 我是否需要添加一個對我的dll的引用,這是我的主要exe文件及其中的類的引用?
  3. 我是否需要重新編碼圖書館才能找到它? (但願不是:))

感謝。

回答

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的引用。如果不是這樣,你也必須這樣做。

相關問題