Si vous me demandiez de choisir un défaut et de vous en parler, je choisirais certainement ma mémoire. Il y a des gens, comme ma conjointe, qui est capable de souvenir de recettes ou de la liste d’épicerie par coeur.
Moi, c’est le contraire.
Je n’ai pas une très bonne mémoire. Afin de pallier à ceci, je prends des notes et je m’invente des mécanismes pour me souvenir de détails. Après tout, une bonne partie de mon travail réside sur ma capacité à me remémorer ces détails et de mettre en place une solution basée sur ces détails.
Ceci étant dit, je suis très visuel. Comme dirait l’autre: on ne veut pas le savoir, on veut le voir!
Chaque fois que je dois manipuler une URL dans l’un de mes projets, j’ai toujours un trou de mémoire sur quelle propriété à utiliser pour mes fins. Certes, je sais faire la distinction entre Uri.DnsSafeHost et Uri.Scheme. Cependant, j’aime toujours avoir la certitude que ce que j’utilise est bien ce dont j’ai besoin.
La documentation MSDN sur les propriétés de la classe Uri répond au besoin. Ce n’est pas le point. Il s’avère juste que je suis un peu paresseux. Alors, qui dit développeur paresseux dit automatisation possible. C’est ainsi que je suis arrivé avec l’idée d’un script scriptcs qui exposerait les propriétés de la classe Uri pour une URL donnée.
Je suis un génie comme dirait l’autre. En même temps, c’est assez maigre comme concept. Peu importe, je le trouve bien utile!
Le code
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
var uri = new Uri(Env.ScriptArgs[0]); | |
Console.WriteLine("AbsolutePath – " + uri.AbsolutePath); | |
Console.WriteLine("AbsoluteUri – " + uri.AbsoluteUri); | |
Console.WriteLine("Authority – " + uri.Authority); | |
Console.WriteLine("DnsSafeHost – " + uri.DnsSafeHost); | |
Console.WriteLine("Fragment – " + uri.Fragment); | |
Console.WriteLine("Host – " + uri.Host); | |
Console.WriteLine("HostNameType – " + uri.HostNameType); | |
Console.WriteLine("IsAbsoluteUri – " + uri.IsAbsoluteUri); | |
Console.WriteLine("IsDefaultPort – " + uri.IsDefaultPort); | |
Console.WriteLine("IsFile – " + uri.IsFile); | |
Console.WriteLine("IsLoopback – " + uri.IsLoopback); | |
Console.WriteLine("IsUnc – " + uri.IsUnc); | |
Console.WriteLine("LocalPath – " + uri.LocalPath); | |
Console.WriteLine("PathAndQuery – " + uri.PathAndQuery); | |
Console.WriteLine("Port – " + uri.Port); | |
Console.WriteLine("Query – " + uri.Query); | |
Console.WriteLine("Scheme – " + uri.Scheme); | |
foreach(var segment in uri.Segments) | |
{ | |
Console.WriteLine("Segment – " + segment); | |
} | |
Console.WriteLine("UserInfo – " + uri.UserInfo); | |
Console.ReadKey(); |
Trente lignes en incluant les lignes vides. Enregistrez le contenu sous un nom de fichier ayant l’extension .csx (c’est l’extension de scripts scriptcs).
Exécutez le script en utilisant la commande suivante: uri.csx — https://frenchcoding.com/2015/03/09/les-liens-de-la-semaine-edition-122/ et le tour est joué!