octobre
2007
Frédéric Mélantois vient de publier son article « Bien comprendre les bases de LINQ To Objects »
septembre
2007
Je vous avez parlé précédemment de Sébastien Lebreton et de son add-in pour reflector : Reflexil. Il vient de publier un article sur THB sur la modification d’assembly (désolé mais j’ai du mal avec assemblage) et l’injection de code C# / VB .NET à la volée.
août
2007
Je viens de découvrir via Fred via Gaël Covain Reflexil. Reflexil est un add-in reflector qui permet de créer ou de modifier le code IL des méthodes d’un assembly puis de sauvegarder les modifications. Sébastien lebreton (son développeur) a sorti la version 0.4 hier. Je viens de la récupérer et vous en direz plus après l’avoir un peu plus utilisée. Ma première impression est très positive.
août
2007
Dans le cas d’une méthode (non statique) qui renvoit this, l’IL fait un pop même s’il a besoin de l’instance juste derrière : private static void Main(string[] args) { StringBuilder sb = new StringBuilder(); sb.Append("azerty"); Console.WriteLine(sb); } donne l’IL suivant : .method private hidebysig static void Main(string[] args) cil managed { .entrypoint .maxstack 2 .locals init ( [0] class [mscorlib]System.Text.StringBuilder sb) […]
août
2007
L’IL généré par le compilateur peut être réduit. Prenons un exemple tout simple : public static string Test(string s) { return s.ToUpper(); } L’IL généré par le compilateur est le suivant : .method public hidebysig static string Test(string s) cil managed { .maxstack 1 .locals init ( [0] string CS$1$0000) L_0000: nop L_0001: ldarg.0 L_0002: callvirt instance string […]
août
2007
Quand une méthode est définie internal protected, c’est un OU qui est fait (idem pour protected internal). Par conséquent, cette méthode sera utilisable depuis une classe fille ou une classe de l’assembly. En C#, il n’y a pas de internal ET protected. Pourtant, cette possibilité existe au niveau de l’IL. En effet, quand on crée une méthode à la volée via MethodBuilder, on peut définir la méthode Private, FamANDAssem, Assembly (internal), Family (protected), FamORAssem ou […]
août
2007
J’avais déjà remarqué que la notion de classe statique n’existait pas en VB. Aussi je ne suis pas surpris de voir que cette notion n’est exploitée que par le compilateur et n’existe pas non plus en IL. Pour l’IL, une classe statique est une classe abstraite. Il y a quand même une différence notable entre une classe statique et une classe abstraite dans l’IL. Dans le cas d’une classe abtraite, on a un constructeur par […]