Question Explications sur les classes .NET ?

Plus d'informations
il y a 16 ans 4 jours #6389 par crouzille
Re ou bonjour à tout le monde.;)

Je reussi à bien avancer dans le powershell en suivant le livre. J'ai fini le chapitre sur .NET.
Des choses sont claires et d'autres non.

Ma question:

Peut t'on m'expliquer le fonctionnement de ce dernier avec des mots simples et ensuite comment savoir que notre variable que nous allons créer ex:

$form = new-object windows.forms.form
ou
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($SMTPAuthUsername, $SMTPAuthPassword)

Comment savoir quelle classe nous devons appeller? Y'a t'il une méthode afin de la determiner et la trouver facilement?

Je n'ai pas encore la logique du raisonnement je pense...

J'espère être clair car pour moi-même aussi c'est assez confus:S


Merci d'avance

Jérémy<br><br>Message édité par: Arnaud, à: 18/03/10 08:35

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 4 jours #6390 par Laurent Dardenne
Salut,
noir28 écrit:

Peut t'on m'expliquer le fonctionnement de ce dernier avec des mots simples et ensuite comment savoir que notre variable que nous allons créer ex:

Pas compris :huh:
noir28 écrit:

comment savoir quelle classe nous devons appeller ?

Si on débute sous dotnet on ne peut pas vraiment le savoir, mais la trouver après qq recherches.
noir28 écrit:

Y'a t'il une méthode afin de la determiné et la trouver facilement ?

Il faut déjà avoir une idée du traitement ciblé.
Mais je pense que pour les plus courantes on les apprend sans trop savoir ce que cela fait, c'est en quelque sorte un apprentissage itératif.

Il faut regarder du coté des espaces de noms .

Un point d'entrée .

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 2 jours #6399 par crouzille
Réponse de crouzille sur le sujet Re:Explications sur les .net ?
C'est vrai que ca aide ;)

J'ai un exemple, je souhaiterai récuperer l'adresse mac.
Donc pour cela j'ai parcouru le site en question et j'ai trouvé:
system.net.networkInformation

Donc ceci est l'espace de nom ?

Ensuite en regardant dedans j'ai trouvé la classe (qui si j'ai bien compris correspond aux infos) physicalAdresse

(Ps: Les méthode ==&gt; action
Propriété ==&gt; Infos
Type ==&gt; catégorie
C'est un truc comme ca?)

Donc afin d'avoir l'adresse mac, j'ai procéder comme suit:
$adresse = new-object system.net.networkInformation.physicalAdresse

et

$adresse = new-object system.net.networkInformation

Pour ensuite faire $adresse.physicalAdresse

Mais aucun des deux ne marche

J'essaye de comprendre mais c'est pas facile, peut t'on m'eclairer sur le sujet?

Merci d'avance

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 16 ans 2 jours #6401 par Laurent Dardenne
noir28 écrit:

system.net.networkInformation
Donc ceci est l'espace de nom ?

Oui
noir28 écrit:

Ps: Les méthode ==&gt; action
Propriété ==&gt; Infos
Type ==&gt; catégorie
C'est un truc comme ca?

C'est plus qu'un truc comme ça, c'est cela!
Pour le terme Type on utilise aussi le terme de Classe (classer est apparenté à catégoriser).
noir28 écrit:

Donc afin d'avoir l'adresse mac, j'ai procéder comme suit:

C'est là que tu trompes, la classe que tu utilises représente (contient) une adresse MAC, c'est juste un conteneur.
\&quot;Avoir\&quot;, c'est à dire obtenir, est une action, il faut donc effectuer un traitement pour placer l'information (l'adresse MAC) dans le conteneur. Si on suit l'approche de PowerShell (un shell basé objet) on doit plutot faire qq chose comme :
[code:1]
$Conteneur=Get-MacAddress
[/code:1]
Une fois ce pseudo code défini, on recherche sur le net, notamment sur poshcode.org où on peut y trouver + approches.
Ou adapter le code C# de l'exemple suivant :
[code:1]
function Get-MacAddress()
{
$computerProperties = [System.Net.NetworkInformation.IPGlobalProperties]::GetIPGlobalProperties()
$nics = [System.Net.NetworkInformation.NetworkInterface]::GetAllNetworkInterfaces()
if (($nics -eq $null) -or ($nics.Length -lt 1))
{
Write-Host \&quot; No network interfaces found.\&quot;
}
$addresses = @() #new-object PhysicalAddress[nics.Length]
$nics|
foreach {
$properties = $_.GetIPProperties()
$_.GetPhysicalAddress()
}
}

$Conteneur=Get-MacAddress
$Conteneur
[/code:1]
On obtient une liste d'adresses MAC.
Premier constat, ce n'est pas utilisable en l'état, il faudrait ajouter le nom de machine concerné et un identifiant lisible pour chaque adresse.
Le développement logiciel est une question d'organisation d'idée, certes mécanique (actionné par une machine); Et comme PS est bien conçu, reste à modifier au moins 1 ligne :
[code:1]
$nics|
foreach {
$properties = $_.GetIPProperties()
$_|Select @{Name=\&quot;Computername\&quot;;Expression={\&quot;LocalHost\&quot;}},@{n=\&quot;ID\&quot;;e={$_.ID}},@{n=\&quot;MAC\&quot;;e={$_.GetPhysicalAddress()}}
}
[/code:1]
WMI propose la classe Win32_NetworkAdapterConfiguration qui évite ce type de tâche.
Tu as le début de la pelote, je te laisse tirer le fil ;-)

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.048 secondes
Propulsé par Kunena