LoginSignup
1
1

More than 5 years have passed since last update.

CodeBehind vs CodeFile (2)

Last updated at Posted at 2015-06-16

背景

前回の続き。
CodeFileにしているcsファイルから、DLLのクラスを呼び出せるかが気になった。

準備

1) 前回のソリューションにクラスライブラリのプロジェクトを追加する。(名前はClassLibrary)
2) 既定で存在するClass1.csを以下のように修正する。
●Class1.aspx

namespace ClassLibrary {
    public class Class1 {
        public Class1() { }
        public string GetKaomoji(int num) {
            switch (num) {
                case 1: return "(´∀`)";
                case 2: return "( ・ω・)";
                default: return "(・∀・)";
            }
        }
    }
}

3) WebApplicationプロジェクトの参照設定で、ClassLibraryを追加する。

実験と結果

CodeFile.aspx.csから別DLLのクラスを呼んでみる。

CodeFile.aspx.csを以下のように修正する。
●CodeFile.aspx.cs

using System;

namespace WebApplication {
    public partial class CodeFile : System.Web.UI.Page {
        protected void Page_Load(object sender, EventArgs e) {
            var sample = new ClassLibrary.Class1(); //←別DLLのクラスを呼ぶよ!
            lbl.Text = "code file!!" + sample.GetKaomoji(1);
        }
    }
}

→ CodeBehindのようにintellisenseから別DLLのクラス呼び出せた

ビルドしてない状態でブラウザでリクエストしてみる

→ エラーとなる。(DLLが見つからないと怒られる)
11.PNG

ビルドした後、リクエストしてみる

→ 正しく表示できる。
12.PNG
→CodeFile属性の場合、CodeBehindと同様に、リクエスト時に参照するクラスライブラリのDLLファイルをbinフォルダに配置しておく必要がある

まとめ

  1. 別DLL内のクラスの呼び出し方は、CodeBehind属性・CodeFile属性ともに同じである。
  2. CodeBehind属性・CodeFile属性の両方とも、別のDLL内のクラスを参照する場合は、参照するDLLファイルをbinフォルダに配置しておく必要がある。

関連

CodeBehind vs CodeFile (1)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1