0

OleDb に接続する WinForm があります。プロジェクト (Visual Studio 2010 の場合) が開いている間に、[新しいメニュー] をクリックしたところAdd New Web Site、Web サイトを追加する前に作成したクラスがあることが問題であると言いましたが、code-behindファイルはその名前空間またはクラスの例を取得できません: (両方のプロジェクトが同じソリューションにあることに注意してください)

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();
  }

プロジェクトの WebSite セクションは NameSpace を取得しません -

私も試しました

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

編集

また、この背後にある全体的な考え方は、ユーザーが自由に winForms と Web を切り替えることができるということです。そのため、DataAccessObject を渡す必要があります。

ASP(.NET) の世界に足を踏み入れるのはこれが初めてです。

何かアドバイス

4

1 に答える 1

1

クラスはWinFormsプロジェクトにあると思います。私の知る限り、ASP.NET Web サイトから WinForms アプリケーションへの参照を追加することはできません。(ただし、私はそれについて間違っている可能性があります。)

プロジェクト間でクラスを共有するための通常のパターンは、別のクラス ライブラリ プロジェクトにクラスを配置することです。次に、WinForms アプリと ASP.NET Web サイトから、プロジェクト (プロジェクトが同じソリューション内にある場合) またはクラス ライブラリ プロジェクトが生成するコンパイル済み .dll のいずれかに参照を追加できます。

クラスがパブリックとして宣言されていることを確認し、Visual Studio で参照を追加する必要があります。

技術的には、クラス ライブラリ プロジェクトから .dll を作成し、それを Web サイトの \bin ディレクトリにコピーするだけで済みますが、経験上、それらを同じソリューションに入れ、プロジェクト参照を追加することをお勧めします。これにより、Web サイトに常に最新バージョンの .dll が含まれていることが保証されます。

ウォークスルーがここにあり、別の関連する役立つ記事がここにあります。

于 2012-05-18T18:32:58.430 に答える