L'appel de la Classe à partir d'un autre Fichier ASP.NET VB.NET
Permet de dire que j'ai une classe de ce genre dans class1.vb:
Public Class my_class
Public Sub my_sub()
Dim myvar as String
myvar = 10
Session("myvar") = myvar
End Sub
End Class
Ensuite, j'ai un ASP.NET page avec un fichier code-behind, par défaut.aspx et par défaut.aspx.vb et je veux l'appeler my_class. Je suis en train de faire la suite, mais ça ne fonctionne pas:
Imports my_app.my_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
my_class()
End Sub
End Class
Je reçois une "Référence à un non-membre partagé nécessite un objet de référence"
OriginalL'auteur Dave Mackey | 2010-04-22
Vous devez vous connecter pour publier un commentaire.
est-ce que votre nouveau code comme ci-dessus (récemment modifié) le code?
Merci De Derek! Qui fonctionne parfaitement.
OriginalL'auteur derek
Essayer de l'importer l'espace de noms qui contient la classe, et non la classe elle-même.
Ainsi, au lieu de cela:
ce faire:
VB.NET les importations des espaces de noms dans le fichier de portée pour aider le compilateur à résoudre les noms de types qui ne sont pas pleinement qualifiés. Cela signifie que vous êtes libre d'utiliser tous les types déclarés dans le
my_app
espace de noms dans ce fichier de code sans en préfixant le nom du type avecmy_app
.Bon, une fois que vous aurez fait cela, vous aurez besoin de faire basculer le contenu de
Page_Load
pour créer une instance demy_class
comme ceci:Maintenant, vous avez une instance de
my_class
appeléfoo
et vous pouvez appeler les méthodes d'instance.L'autre chose que vous pourriez faire est de faire
my_sub
unShared
méthode de sorte que vous n'avez pas à créer une instance:Si vous faites cela, alors vous n'avez pas besoin de créer une instance de
my_class
appelermy_sub
- vous pouvez appelermy_sub
directement:Je pense que vous pourriez avoir à poster un peu plus de code, je ne vois pas ce que la méthode a déclaré n'importe où dans votre post original.
Oups. Désolé. Même erreur, il suffit de retirer le "GetUserInfo" et remplacer par "my_sub'
Ah ok, pas de soucis! J'ai mis à jour ma réponse à montrer ce qu'il reste à produire.
Merci À Andrew. Je souhaite que je pourrais donner deux réponses sur la coche verte...mais je l'ai donné à Derek, b/c, j'ai reçu sa réponse en premier. Merci encore!
OriginalL'auteur Andrew Hare
Voulez-vous dire que vous voulez l'appeler my_sub() sur my_class? Vous pouvez le marquer comme partagé methog de sorte qu'il peut être appelé comme
my_class.my_sub()
ou
instancier une instance de celui-ci:
OriginalL'auteur Chris W