0

プロジェクトのルート フォルダーに Contact.vb というパブリック VB クラスがあり、App_Code フォルダーに Service.vb という別の VB クラスがあります。

次のように Service.vb で Contact クラスを宣言しようとすると:

Dim ds As New Contact

コンパイル中に次のエラーが発生します。

タイプ「連絡先」が定義されていません。

私は C# コーディングに慣れているので、ここで何が欠けているのかよくわかりません...

編集#1:

これは Contact クラスの最初の部分です。クラスはスキーマに基づいて生成されています。

    '------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'     Runtime Version: 1.1.4322.2300
'
'     Changes to this file may cause incorrect behavior and will be lost if 
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On

Imports System
Imports System.Data
Imports System.Runtime.Serialization
Imports System.Xml


<Serializable(),  _
 System.ComponentModel.DesignerCategoryAttribute("code"),  _
 System.Diagnostics.DebuggerStepThrough(),  _
 System.ComponentModel.ToolboxItem(true)>  _
Public Class Contact
    Inherits DataSet

    Private tableContact As ContactDataTable

編集#2:何が間違っているのかがようやくわかりました。管理者モードで VS でプロジェクトをビルドすると、正常にビルドされますが、管理者モードでない場合は失敗します。

なぜこのようになっているのかはわかりませんが、フォルダーのアクセス許可などが原因である可能性があります。

4

3 に答える 3

0

あなたのプロジェクトは Web アプリケーションですか、それとも Web サイトですか?

この 2 つのケースでは、App_Code フォルダーの動作に多くの違いがあります...

C# でこのアプローチを使用する場合、通常は vb.net で違いはありません。

別のこと:c#では、名前空間はデフォルトでビジュアルスタジオによって作成されますが、vb.net(私が正しく覚えていれば)では作成されません。

于 2013-10-09T14:31:51.910 に答える
0

クラスにタイプミスがないことを確信していますか? 次の行を削除すると、プロジェクトをビルド/実行できますか:

Dim ds As New Contact

私はあなたのクラスを次のように試しました:

'------------------------------------------------------------------------------
' <autogenerated>
'     This code was generated by a tool.
'     Runtime Version: 1.1.4322.2300
'
'     Changes to this file may cause incorrect behavior and will be lost if 
'     the code is regenerated.
' </autogenerated>
'------------------------------------------------------------------------------

Option Strict Off
Option Explicit On

Imports System
Imports System.Data
Imports System.Runtime.Serialization
Imports System.Xml


<Serializable(), _
 System.ComponentModel.DesignerCategoryAttribute("code"), _
 System.Diagnostics.DebuggerStepThrough(), _
 System.ComponentModel.ToolboxItem(True)> _
Public Class Contact
    Inherits DataSet

    'Private tableContact As ContactDataTable

End Class

そして、エラーなしで Dim ds... 行を使用することができました。

ソリューションを再構築することで解決する前に、同様の問題がありました。

VSを閉じて再度開いてみましたか?

于 2013-10-09T12:36:23.000 に答える