2011-11-24 55 views
-1

我在C#中創建了CLR,它處理來自SQL數據庫的觸發器。這是作爲一個dll構建的。還有另一個文件構建爲exe,並創建TCPServer的單例實例。我想訪問dll中的TCPServer實例來發送觸發器中收到的數據。我怎樣才能做到這一點?當我嘗試在文件中使用命名空間時,它給我錯誤。有沒有一種方法可以從構建爲DLL的文件構建爲exe文件的實例及其功能?或者這是一個非常糟糕的設計?基本思想是處理SQL觸發器並將數據發佈到套接字。我對c#和SQL都很陌生。C#:如何從CLR構建爲DLL的EXE訪問函數?

代碼CLR:

namespace trigger 
    { 
     public class X 
     { 
      public static void trig_hdl() 
      { 
      } 
     } 
    } 

這是建成DLL:CSC/T:庫

代碼TCPSERVER:

namespace TCP 
{ 
    public class TCPServer 
    { 
    public void sendTo() 
    } 
} 

這被構建爲EXE。

現在來自trig_hdl()如何訪問sendTo()?

+0

難以遵循。嘗試發佈一些(原理圖)代碼。命名事情。 –

+4

我懷疑你是否構建了一個'CLR'。 –

回答

0

程序集是'exe'還是'dll'(如果它是一個.Net程序集),首先你應該引用它,然後你將有能力使用位於組裝,如果兩個項目都在同一個解決方案中,那麼絕對沒有問題,只需引用您的項目。

關於糟糕的設計,它似乎確實不好,基本的想法是,你使用共享類庫,你把所有的共享代碼。之後,您只需從兩個項目中引用該庫,然後使用位於其中的代碼...

+0

是的,在一個類庫項目中引用一個.exe項目或程序集是完全靠前的,沒有任何意義。 –