Cela pourrait être une question stupide, mais je suis en train de développer un composant et j'ai une classe avec une propriété comme suit
public class Grid()
{
..
public IDecorator Decorator { get; set;}
}
Ce que je veux, c'est que l'utilisateur spécifie sa propre classe personnalisée qui implémente IDecorator de la manière suivante
...BuildGrid(
grid=>{
..
grid.Decorator = [CustomNameSpace].[DecoratorClass]
//comme
grid.Decorator = Com.MyCompany.DivDecorator
..
});
Com.MyCompany.DivDecorator implémente l'interface IDecorator. Donc comment devrais-je faire pour que l'utilisateur final ne spécifie pas le mot-clé "new" comme dans
grid.Decorator = new Com.MyCompany.DivDecorator();
Je sais que je passe à côté d'un concept clé en C# ici.
Merci
[Éditer]
J'essayais de faire quelque chose comme la bibliothèque Java DisplayTag située ici
http://www.displaytag.org/1.2/tut_decorators.html
La façon dont ils le font est par
... decorator="org.displaytag.sample.Wrapper"
Alors je suppose qu'au lieu de
public IDecorator Decorator { get; set;}
Je devrais faire
public String Decorator { get; set;}
et ensuite utiliser TypeOf() en interne pour le résoudre.... Je me demande juste s'il y a une autre façon élégante de le faire en C#.
Merci