Public Function ExtraireIcone(ByVal iconName As String) As Icon
Dim Assembly_Execution As Assembly = _
Me.GetType().Assembly.GetEntryAssembly()
Dim namespaceName As String = _
Assembly_Execution.GetName().Name.ToString()
iconName = namespaceName & "." & iconName
Dim streamIcon As Stream = _
Assembly_Execution.GetManifestResourceStream(iconName)
Dim iconEmbedded As Icon = New Icon(streamIcon)
Return iconEmbedded
End Function
J'ai un warning sur la ligne :
Dim Assembly_Execution As Assembly = _
Me.GetType().Assembly.GetEntryAssembly()
et plus précisément sur la partie :
Me.GetType().Assembly.GetEntryAssembly()
Je reçois le message :
[ Accès d'un membre partagé, d'un membre constante, d'un membre enum
ou d'un type imbriqué via une instance; l'expression qualifiante ne sera pas
évalué.]
J'ai trouvé ce code sur la toile mais aucune indication sur ce "warning".
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jérémy Jeanson
Bonjour Mousnynao,
En lieu et place de : Me.GetType().Assembly.GetEntryAssembly() il faut écrire : Assembly.GetAssembly(Me.GetType())
Car Assembly.GetEntryAssembly() est une méthode statique et comme te le souligne Visual Studio, le framework interdit d'appeler un méthode statique à partir d'une instance d'un objet.
Pour mieux comprendre, tu as peut être déjà constaté que si tu écris une méthode statique dans une classe, tu ne peux pas appeler cette méthode au seins de sa classe en la préfixant par Me.
Par exemple on ne peut pas écrire : Public Class Class1
Public Shared Sub MaMethodeStatique() ' End Sub
Public Sub MaMethodeDInstance() Me.MaMethodeStatique() End Sub
End Class
Mais on peut ecrire : Public Class Class1
Public Shared Sub MaMethodeStatique() ' End Sub
Public Sub MaMethodeDInstance() MaMethodeStatique() End Sub
End Class
-- Jérémy JEANSON MCP http://www.jjeanson.fr
Bonjour Mousnynao,
En lieu et place de :
Me.GetType().Assembly.GetEntryAssembly()
il faut écrire :
Assembly.GetAssembly(Me.GetType())
Car Assembly.GetEntryAssembly() est une méthode statique et comme te le
souligne Visual Studio, le framework interdit d'appeler un méthode
statique à partir d'une instance d'un objet.
Pour mieux comprendre, tu as peut être déjà constaté que si tu écris une
méthode statique dans une classe, tu ne peux pas appeler cette méthode
au seins de sa classe en la préfixant par Me.
Par exemple on ne peut pas écrire :
Public Class Class1
Public Shared Sub MaMethodeStatique()
'
End Sub
Public Sub MaMethodeDInstance()
Me.MaMethodeStatique()
End Sub
End Class
Mais on peut ecrire :
Public Class Class1
Public Shared Sub MaMethodeStatique()
'
End Sub
Public Sub MaMethodeDInstance()
MaMethodeStatique()
End Sub
En lieu et place de : Me.GetType().Assembly.GetEntryAssembly() il faut écrire : Assembly.GetAssembly(Me.GetType())
Car Assembly.GetEntryAssembly() est une méthode statique et comme te le souligne Visual Studio, le framework interdit d'appeler un méthode statique à partir d'une instance d'un objet.
Pour mieux comprendre, tu as peut être déjà constaté que si tu écris une méthode statique dans une classe, tu ne peux pas appeler cette méthode au seins de sa classe en la préfixant par Me.
Par exemple on ne peut pas écrire : Public Class Class1
Public Shared Sub MaMethodeStatique() ' End Sub
Public Sub MaMethodeDInstance() Me.MaMethodeStatique() End Sub
End Class
Mais on peut ecrire : Public Class Class1
Public Shared Sub MaMethodeStatique() ' End Sub
Public Sub MaMethodeDInstance() MaMethodeStatique() End Sub
End Class
-- Jérémy JEANSON MCP http://www.jjeanson.fr
Mousnynao
Bonjour Jérémy,
Merci beaucoup pour ta réponse.
Très clair, très précis. Je débute avec les Assemblys et je suis un peu perdu, alors ton aide est très apprécié.
Effectivement, j'avais déjà rencontré ce message (warning), mais j'ai encore de la difficulté à l'interprèté lorque que je rencontre du nouveau code.
Merci encore.
Michel
"Jérémy Jeanson" a écrit :
Bonjour Mousnynao,
En lieu et place de : Me.GetType().Assembly.GetEntryAssembly() il faut écrire : Assembly.GetAssembly(Me.GetType())
Car Assembly.GetEntryAssembly() est une méthode statique et comme te le souligne Visual Studio, le framework interdit d'appeler un méthode statique à partir d'une instance d'un objet.
Pour mieux comprendre, tu as peut être déjà constaté que si tu écris une méthode statique dans une classe, tu ne peux pas appeler cette méthode au seins de sa classe en la préfixant par Me.
Par exemple on ne peut pas écrire : Public Class Class1
Public Shared Sub MaMethodeStatique() ' End Sub
Public Sub MaMethodeDInstance() Me.MaMethodeStatique() End Sub
End Class
Mais on peut ecrire : Public Class Class1
Public Shared Sub MaMethodeStatique() ' End Sub
Public Sub MaMethodeDInstance() MaMethodeStatique() End Sub
End Class
-- Jérémy JEANSON MCP http://www.jjeanson.fr
Bonjour Jérémy,
Merci beaucoup pour ta réponse.
Très clair, très précis. Je débute avec les Assemblys et je suis un peu
perdu, alors ton aide est très apprécié.
Effectivement, j'avais déjà rencontré ce message (warning), mais j'ai
encore de la difficulté à l'interprèté lorque que je rencontre du nouveau
code.
Merci encore.
Michel
"Jérémy Jeanson" a écrit :
Bonjour Mousnynao,
En lieu et place de :
Me.GetType().Assembly.GetEntryAssembly()
il faut écrire :
Assembly.GetAssembly(Me.GetType())
Car Assembly.GetEntryAssembly() est une méthode statique et comme te le
souligne Visual Studio, le framework interdit d'appeler un méthode
statique à partir d'une instance d'un objet.
Pour mieux comprendre, tu as peut être déjà constaté que si tu écris une
méthode statique dans une classe, tu ne peux pas appeler cette méthode
au seins de sa classe en la préfixant par Me.
Par exemple on ne peut pas écrire :
Public Class Class1
Public Shared Sub MaMethodeStatique()
'
End Sub
Public Sub MaMethodeDInstance()
Me.MaMethodeStatique()
End Sub
End Class
Mais on peut ecrire :
Public Class Class1
Public Shared Sub MaMethodeStatique()
'
End Sub
Public Sub MaMethodeDInstance()
MaMethodeStatique()
End Sub
Très clair, très précis. Je débute avec les Assemblys et je suis un peu perdu, alors ton aide est très apprécié.
Effectivement, j'avais déjà rencontré ce message (warning), mais j'ai encore de la difficulté à l'interprèté lorque que je rencontre du nouveau code.
Merci encore.
Michel
"Jérémy Jeanson" a écrit :
Bonjour Mousnynao,
En lieu et place de : Me.GetType().Assembly.GetEntryAssembly() il faut écrire : Assembly.GetAssembly(Me.GetType())
Car Assembly.GetEntryAssembly() est une méthode statique et comme te le souligne Visual Studio, le framework interdit d'appeler un méthode statique à partir d'une instance d'un objet.
Pour mieux comprendre, tu as peut être déjà constaté que si tu écris une méthode statique dans une classe, tu ne peux pas appeler cette méthode au seins de sa classe en la préfixant par Me.
Par exemple on ne peut pas écrire : Public Class Class1
Public Shared Sub MaMethodeStatique() ' End Sub
Public Sub MaMethodeDInstance() Me.MaMethodeStatique() End Sub
End Class
Mais on peut ecrire : Public Class Class1
Public Shared Sub MaMethodeStatique() ' End Sub
Public Sub MaMethodeDInstance() MaMethodeStatique() End Sub