2012-05-18 27 views
0

我有一個連接到OleDb的WinForm。雖然該項目(在Visual Studio 2010中)打開我點擊新菜單,並說Add New Web Site現在的問題是我有一個類,我添加網站之前創建的 - 但code-behind文件無法拿起該命名空間或類示例(注意:這兩個項目都在同一個解決方案)Win Form和Asp.net接口

namespace Name 
{ 
    //Code From The Original Project before Adding The WebSite 
    class DataAccessObject 
    { 
     private ...; 
     private ...; 
    } 
} 

public partial class Candidate : System.Web.UI.Page 
    { 
    ... 
    ... 
    ... 
    DataAccessObject dao = new DataAccessObject(); 
    } 

項目的網站科甚至沒有拿起命名空間 -

我也曾嘗試

public partial class Candidate : System.Web.UI.Page 
    { 
    ... 
    ... 
    ... 
    Name.DataAccessObject dao = new DataAccessObject(); 
    } 

編輯

而且其背後的整體思路是,用戶可以隨意的WinForms和網絡之間進行切換,因此對DataAccessObject傳遞是必需的。

注意:這是我第一次正逐漸進入ASP(.NET)

任何意見

回答

1

的世界,我認爲這個類是在WinForms項目。據我所知,你不能從ASP.NET網站添加對WinForms應用程序的引用。 (儘管如此,我可能是錯的)

通常讓項目之間共享類的模式是將類放在單獨的類庫項目中。然後,從WinForms應用程序和ASP.NET網站,您可以向項目添加引用(如果項目位於相同的解決方案中),或者添加類庫項目生成的編譯後的.dll。

確保該類聲明爲Public,並且您需要在Visual Studio中添加引用。

從技術上講,您可以從類庫項目創建一個.dll文件,並將其簡單地複製到網站的\ bin目錄中,但從經驗來看,最好將它們放在同一個解決方案中並添加項目參考。這可以確保該網站始終具有最新版本的.dll。

有一個步行here和另一個相關的,有用的文章here

+0

仍忙碌嘗試一切 - 但它看起來很遠目前爲止 – Markus

+0

THanks - 它現在似乎工作。你現在可以怎樣從WinForm中調用webSite(也許實例化一個新的對象)? – Markus

+1

您無法從WinForm實例化網站類,而不是從網站的WinForm類中進行實例化。 (注意 - 你可以從WinForm應用程序調用* Web服務*查找Web服務ASP.NET和WCF - 這是一個很好的起點:http://www.4guysfromrolla.com/articles/062602 -1.aspx)請注意,asmx Web服務比較老舊並且「過時」(儘管我仍然喜歡它們)。 WCF(Windows Communication Foundation)是較新的模型,但我認爲在深入研究WCF之前瞭解基本Web服務很重要。 – David