Oppure

Loading
05/08/10 12:50
Dyango
altro errore è la sottolineatura verde su Imports System.Management, che dice nn contiene nessun membro pubblico, infatti ho provato il prog, e gia alla riga
For Each queryObj As ManagementObject In searcher.get
mi da errore NullReferenceException Riferimento a un oggetto non impostato su un'istanza di oggetto puntando sul .get.
non mi e mai capitat una cosa del genere come posso importare correttamente System.Management?
aaa
05/08/10 12:52
netarrow
Hai aggiunto l'assembly System.Management come reference del progetto?
aaa
06/08/10 8:02
Il Totem
Postato originariamente da netarrow:
Si ok, ma ManagementObject espone un indexer, ereditandolo da ManagementBaseObject.


Beh, l'eccezione dice il contrario...
aaa
06/08/10 14:06
netarrow
Penso di aver capito cosa è successo:

Lui ha fatto l'import di System.Management, ma non ha aggiunto la reference all'assembly System.Management.dll, l'intero namespace e quindi anche la classe ManagementObject non venivano trovati, lui ha detto a visual studio di creare la classe che mancava quindi è stata creata una nuova classe ManagementObject, infatti nel suo errore viene indicata interna al suo namespace con WindowsApplication1.ManagementObject che ovviamente non contiene ne l'indexer ne niente altro.

Questo spiegherebbe come mai non trova un indexer che nella classe originale c'è e tutti gli altri errori che gli vengono dati fin dall'importazione del namespace.
aaa
06/08/10 14:08
Dyango
ecco finalmente ho risolto:

Public Shared Function GetCpuCores() As Integer
        Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher("SELECT * FROM Win32_Processor")
        Try
            For Each queryObj As ManagementObject In searcher.Get
                Return Convert.ToInt32(queryObj.Item("NumberOfCores"))
            Next
        Catch e As ManagementException
            Return -1
        End Try
        Return -1
    End Function


gli errori che ho corretto sono:

1 - l aggiunta dei referimenti al namespace system.management
2 - aggiunto la proprietà item a queryObj
3 - ho tolto "root\CIMV2" durante la dichiarazione di searcher

grazie ragazzi per l aiuto che mi avete dato;)
Ultima modifica effettuata da Dyango 06/08/10 14:10
aaa
07/08/10 8:16
Il Totem
Postato originariamente da netarrow:
lui ha detto a visual studio di creare la classe che mancava quindi è stata creata una nuova classe ManagementObject


Come? Se le classi non esistono, VS non le crea da solo, a meno che non mi sia perso una funzionalità di VS2010.
aaa
07/08/10 11:38
netarrow
Quando una classe non viene trovata visual studio ti chiede se vuoi importare il namespace i cui è definita la classe (ma questo solo se l'assembly contenente il namespace è nelle reference del progetto) oppure se vuoi creare la stub di una classe con quel nome (che sarà ovviamente vuota).
aaa