Не могу получить доступ к моему классу из-за кодаКласс - это папка App_Code - PullRequest
6 голосов
/ 15 февраля 2011

У меня есть очень простой класс, который находится в моей папке App_Code в моем проекте веб-приложения VS2008. Я пытаюсь создать экземпляр этого класса из моего файла с выделенным кодом. Intellisense, кажется, не видит мой класс, и я не уверен, почему. Я использую VB.NET, с которым я, по общему признанию, не так хорошо знаком по сравнению с C #. Возможно, я что-то упустил. Держу пари, что это как-то связано с тем, чего мне не хватает в VB.NET.

Вот мой простой класс (для тестирования):

Public Class mySimpleClass

   'Private member variables whose data is obtained from user input
    Private mUserID as String

   'Class Properties
    Public Property UserID() as Integer
       Get
          Return mUserID
       End Get

       Set(ByVal Value as Integer)
          mUserID = Value
       End Set
    End Property

    'Class Methods
    Public Function DisplayUserID() as String
       Return this.UserID
    End Function

End Class

Вот как я пытаюсь создать экземпляр из кода позади ...

Partial Public Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim obj As New mySimpleClass()
    End Sub

End Class

Ответы [ 5 ]

12 голосов
/ 15 февраля 2011

В результате я удалил папку App_Code и создал новую папку «AppCode».Я также выбрал свойства для файла класса и установил для свойства Build Action значение «Compile».Как только я сделал это и перекомпилировал проект, появился мой класс.

1 голос
/ 17 декабря 2012

На самом деле, я думаю, что если вы добавите пространство имен в ваш проект, оно должно также работать. Кажется, я помню, что эта проблема также часто возникала в C # asp.net. Хотя я могу ошибаться

1 голос
/ 15 февраля 2011
  1. вы должны изменить Return this.UserID на Return Me.UserID (VB.Net; -))
  2. перестройте решение и посмотрите, работает ли оно

Я не так хорошо знаком с папкой app_code и сайтами в целом, я всегда использую WebApplications. Я бы посоветовал преобразовать его в WebApplication . Вот дополнительная информация: Веб-сайт ASP.NET или веб-приложение ASP.NET?

0 голосов
/ 10 февраля 2016

Перейдя к каждому файлу, содержащему классы "public" в папке "App_Code" и установив действие сборки из содержимого в компиляцию, сделаем свое дело. Это работает для проектов типа веб-приложений. Все, что касается использования модуля (VB), пространства имен или статического (C #), не поможет, пока вы не настроите файлы классов для компиляции (независимо от того, в какой папке они находятся).

0 голосов
/ 18 февраля 2014

Согласен с Густином (вроде).Добавьте «использование пространства имен»;строка кода веб-формы за

Дэйв

...