【ASP.NET】 独自で作成したクラスが認識されない
- ASP.NETに関する質問です。Visual Studio 2008の開発環境で独自のクラスを作成しましたが、別のソースファイルでそのクラスをインスタンス化しようとするとエラーが出力されます。
- 作成したクラスはClass1.vbという名前であり、LoginTimeというプロパティがあります。しかし、インスタンス化しようとする際に「型 'Class1' が定義されていません」というエラーが発生します。
- 解決方法としては、以下の点を確認することが重要です。まず、クラスファイル(Class1.vb)が正しく作成されているか確認しましょう。また、インスタンス化する際のソースファイル(test.vb)の記述に誤りがないかも確認してください。
- ベストアンサー
【ASP.NET】 独自で作成したクラスが認識されない
お世話になります。ASP.NETに関する質問です。 Visual Studio 2008の開発環境において、 画面右側のソリューションエクスプローラより 右クリックして[新しい項目の追加]をクリックして 新規にクラスファイル(Class1.vb)の作成(言語: Visual Basic)を 行いました。 別のソースファイルより、上記で作成したクラスをインスタンス化 しようとしたところ、コンパイル時に下記エラーが出力されます。 ------------------------------------------------------ 型 'Class1' が定義されていません。 ------------------------------------------------------ クラスをインスタンス化しているソースの記述は以下の通りです。 (test.vb)--------------------------------------------- '変数宣言 Dim cl1 as Class1 = Session.Contents("クラス1") ------------------------------------------------------ Class1.vbの内容は以下の通りです。 (Class1.vb)------------------------------------------- Public Class Class1 Protected _LoginTime As String Public Property LoginTime() As String Get Return _LoginTime End Get Set(ByVal Value As String) _LoginTime = Value End Set End Property End Class ------------------------------------------------------ どなたか原因と対処方法についてご教授願えますでしょうか? 以上、よろしくお願いいたします。
- masy0312
- お礼率49% (104/211)
- その他(プログラミング・開発)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Class1.vbをApp_Codeフォルダの下に置かないと認識されません。 このフォルダは特殊なフォルダで、ソリューションエクスプローラーで、サイトのルートを右クリックしてASP.NETフォルダの追加で選択して作成してください。
関連するQ&A
- VB.NETで出来てC#で出来ない???
VB.NETでは出来るのにC#で同じようにするやり方がわからなくて困っています。 VSのバージョンは2008です。 やりたいことは 『param.Item("AAA") = "111"』 このように書けるクラスを作りたいのですが、 VBで出来てC#では出来ないのでしょうか? イメージとしてはプロパティにメソッドをくっつけたようなクラス? C#ではこのように書くとエラーになります。 どのようにしたらいいでしょうか? public string Item(string Key) { set { _param[Key] = value; } } VB Dim param As New Param() param.Item("AAA") = "111" ----Paramクラス---- Imports System.Text Public Class Param Private _Hash As New Hashtable Default Public Property Item(ByVal Key As String) As String Get Return _Hash(Key) End Get Set(ByVal value As String) _Hash(Key) = value End Set End Property End Class ---------
- ベストアンサー
- その他(プログラミング・開発)
- VB.NETで変数の宣言が上手くできません
VB.NETで変数の宣言が上手くできません プロパティを使用し、変数の内容を一括保存しようと考えています その為に以下のようなコードを書いたのですが他のフォームから宣言されていないとなってしまいます 修正点を教えて頂けると嬉しいです Setting.vb Pubic class Settings Public dbdirectry As String Public flistpass As String Public Property flist () As String Get Return flistpass End Get Set (Byval Value As String) flistpass = Value End Set End Property もう一つflist () をdbdic ()に flistpassをdbdirectryにしたもの End Class この変数2つに他のフォームMainForm1.vbとDefaultSetting.vbなどからflistpass = Newflistpassなどと記述するとアクセス出来ず宣言していない扱いになります Publicでの宣言で大丈夫だと思ったのですが間違えているのでしょうか?
- ベストアンサー
- Visual Basic
- クラスに配列を渡す方法
こんにちは、VB.NET初心者です。 メインプログラムからクラスに配列を渡したいのですが、どうやって渡せばいいのかわかりません。 一応、いろいろなサイトやMSDNを覗いたのですが、よく分かりませんでした。 よろしければ、教えてください。環境はVB2005です。 下記のは現在書いているソースなのですが、この場合エラーがでます。 メインプログラム Private Sub button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles button1.Click Dim abc() as integer ’配列に何かを入れる処理を記述 ’何個の要素が入るかはわかりません。通るときによって変わります。 Dim 123 As New clsAAA 123.ABC = abc 123.処理1() End Sub clsAAA Private pABC() As Integer Public Property ABC() As Integer Get Return pABC End Get Set(ByVal value As Integer) pABC = value End Set End Property
- ベストアンサー
- Visual Basic
- VBAでクラス設定
(標準モジュール) Option Explicit Sub test() Dim Class As Class1 Set Class = New Class1 Class.Obj = 1000 Set Class = Nothing Set Class = New Class1 Range("a1").Value = Class.Obj Set Class = Nothing End Sub (クラスモジュールClass1) Option Explicit Private a As Integer Public Property Get Obj() As Integer Obj = 2000 End Property Public Property Let Obj(ByVal NewNumber As Integer) a = NewNumber End Property 上のマクロではやり取り1変数になってますがこれを配列に変えたいのですがどうすればいいでしょうか?
- ベストアンサー
- Visual Basic
- クラスの作成
クラスを作り Class1.Field1.value というようにClass1にField1というクラスをつくりそのField1という クラスのvalueというプロパティにアクセスできるようにしたいので すが、こういうことはできるのでしょうか? VBのバージョンは2005です。
- ベストアンサー
- Visual Basic
- ユーザーコントロールに選択プロパティを出す?
VB.NET2005のWEBユーザーコントロールでプロパティを作り、それをコントロールを配置したときのプロパティウィンドウから選択させたいのですが、書籍やネット等を調べてもわかりませんでした。。。現状のソースは Public Property TEST() As String Get Return "" End Get Set(ByVal value As String) if value = 1 then me.close end if End Set End Property です。 これでプロパティウィンドウにTESTという項目はでますが、値を入力しないといけません。よくあるBackColorのプロパティのようにリストから選択できるようにしたいのですがどうしたらいいでしょうか? それともカスタムコントロールでないとできないのでしょうか?
- ベストアンサー
- Visual Basic
- VB6.0のクラスで、自分自身のインスタンスを作成するメリット
クラスのメソッドで、自分自身のインスタンスを作成している、コードをよく見かけます。 どんなメリットがるのでしょうか? 簡単に、クラスファイルのコードを書きました。 【A.cls】 Option Explicit Dim pstrID As Long Dim pstrName As String Public Function fncCreate() As Object Set fncCreate = New clsA '★自分自身のインスタンスを作成する End Function Public Function fncID() As Boolean pstrName = "ID" End Function Public Function fncName() As Boolean pstrName = "STRING" End Function Private Sub Class_Initialize() pstrID = 0 pstrName = "" End Sub
- ベストアンサー
- Visual Basic
- コントロールにイベントを発生させるには?
VB.NET2005のWEBユーザーコントロールで下記のようにプロパティやメソッドをつくることはできたのですが、コンボボックスの選択がへんこうされたとか、テキストボックスの内容が変更されたとかのイベントをとることができません。いったいどうすればできるのでしょうか? Public Property TEST() As String Get Return "" End Get Set(ByVal value As String) _Test=value End Set End Property
- ベストアンサー
- Visual Basic
- プロパティープロシージャーについて
簡単な年齢計算プログラムです。 書籍のサンプルなのでうまく動いています。 クラスの変数がPrivate strnameだったりするので そこへアクセスするためにプロパティプロシージャーを使っているというところまでは 判ったような気がしますが、 getとsetの関係がわかりません。 まず、 1.何をGetしているのか 2.なぜGetが先に来るのか、 3.Setの前にGetのReturnで返してますが実態は何を返しているのでしょうか?普通に考えると逆のような気がします。 根本がわかっていないのだと思いますが、どなたかお教え願います。 呼ぶ方 Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim person As New Class1() person.Name = TextBox1.Text person.Birthday = DateTimePicker1.Value.Date MessageBox.Show(person.Name & "さんの年齢は" & person.GetAge()) End Sub クラスの方。 Public Class Class1 Private strname As String Private datBirthday As Date Public Property Name() As String Get Return strname End Get Set(ByVal pro_name As String) strname = pro_name End Set End Property Public Property Birthday() As Date Get Return datBirthday End Get Set(ByVal pro_birthday As Date) datBirthday = pro_birthday End Set End Property Public Function GetAge() As Integer Return Int(DateTime.Today.Subtract(Birthday).Days / 365.25) End Function End Class
- ベストアンサー
- Visual Basic
- VB.NET getとsetの概念がわかりません。
GetとSetがどういう働き・意味をもっているのか理解できていません。 たとえばSpecialTextBoxというクラスがあったとします。 *************************************************************** Imports System.Web.UI.MobileControls Partial Class SpecialTextBox Inherits System.Web.UI.MobileControls.MobileUserControl Public Property Item() As SelectionList Get Return Me.CheckBox End Get Private Set(ByVal value As SelectionList) Me.CheckBox = value End Set End Property End Class **************************************************************** ここでのGet Setはどういう動き・働きをしているんでしょうか? わかる方がいたらご助言お願いいたします。 (サンプルソースなどがあれば理解しやすいかもしれません。。)
- ベストアンサー
- Visual Basic
お礼
ありがとうございます。 問題が解決しました。