avril
2007
Comme je viens de le voir sur ce blog, il est possible de caster un objet en anonymous type. Ce n’est pas très compliqué mais je n’y avais pas pensé.
avril
2007
Dans mon article sur le DataBinding avancé, je montre comment rajouter des propriétés virtuelles sans toucher au code d’une classe. Dans le cas où on puisse modifier le code de la classe, on peut aussi rajouter des propriétés virtuelles en utilisant l’interface ICustomTypeDescriptor. Voici un exemple d’implémentation : public class Person : ICustomTypeDescriptor { private DateTime _birthDay = new DateTime(1981, 11, 18); public Person() { } public DateTime […]
avril
2007
En C#, vous avez le menu contextuel Refactor depuis VS 2005. Quand on y a goûté, difficile de s’en passer. Et pourtant, c’est bien ce que j’ai fait depuis le 1er février. En effet, en VB, Refactor n’existe pas. Et, alors que je m’étais résigné, j’ai vu un webcast des techdays d’Eric Mittelette et Mitsuru Furuta sur Orcas. A travers ce webcast, Eric Mittelette a amélioré mon quotidien ! Il y a un Refactor pour […]
avril
2007
Dans le code suivant : var test = new { PropertyStr = "un", PropertyInt = 1 }; Type t = Type.GetType("System.Collections.Generic.List`1[" + test.GetType().ToString() + "]"); t est égal au type d’une liste de mon type anonyme. Dans le code suivant : Type t = Type.GetType("System.Collections.Generic.List`1[" + typeof(string).ToString() + "]"); t est égal à typeof(List<string>) Et dans le code suivant : Type t = Type.GetType("System.Collections.Generic.List`1[" + typeof(Control).ToString() + "]"); t est égal à null ! […]
avril
2007
Je me suis retrouvé confronté à un problème auquel je ne m’attendais pas dans mon mapping objet relationnel. Comme vous le savez sûrement, les enums peuvent être castés en int et inversement. En revanche, on a un problème avec les nullable d’enum. En base, j’utilise une colonne de type int facultative pour représenter un nullable d’enum. J’ai fait un mapping objet relationnel générique (au sens général du terme) qui s’appuie sur la reflection pour renseigner […]
avril
2007
Dans la présentation d’Orcas de Christine DUBOIS de la société Agilcom, on trouve un slide qui recense les nouveautés présentes dans Orcas (page 5). Sinon, si vous êtes intéressé par Orcas, une présentation en avait été faites au Techdays par Mitsuru Furuta et Eric Mittelette.
avril
2007
J’ai été surpris par le comportement du RealProxy : Le code suivant : internal class BusinessProxy<BusinessType> : RealProxy where BusinessType : BusinessObject, new() { private BusinessType _businessObject; protected BusinessProxy(BusinessType businessObject) : base(typeof(BusinessType)) { _businessObject = businessObject; } public static BusinessType Create() { return CreateProxy(new BusinessType()); } public static BusinessType CreateProxy(BusinessType businessObject) { return (BusinessType)(new BusinessProxy<BusinessType>(businessObject).GetTransparentProxy()); […]
avril
2007
Dans ce cas, public class C1 { public string Prop1 { get; set; } } public class C2 : C1 { public string Prop2 { get; set; } } typeof(C2).GetProperty("Prop1") retourne bien la propriété Prop1 de C1. En revanche, dans ce cas, public interface I1 { string Prop1 { get; set; } } public interface I2 : I1 { string Prop2 { get; set; } } typeof(I2).GetProperty("Prop1") retourne null […]