J'ai créé ma propre architecture de plugin basée sur les pratiques courantes mais je suis coincé avec des icônes.Comment créer un attribut Icon pour un plugin en C#?
d'abord tous mes plugins définissent les clients à utiliser par l'hôte et chaque client est définie avec des attributs tels que:
[Client("Heroes of Newerth", "Heroes of Newerth Chat Client", "hon_16.png")]
Avec cette ma application hôte peut lire sans réellement créer une instance de méta-informations du plugin/client mais je suis coincé avec la partie icône.
Comme dans l'exemple ci-dessus un client peut passer un nom de fichier bitmap et dans ma mise en œuvre des attributs je peux gérer comme ceci:
[AttributeUsage(AttributeTargets.Class)]
public class ClientAttribute : Attribute
{
private string _name;
private string _description;
private Bitmap _icon;
public string Name { get { return this._name; } }
public string Description { get { return this._description; } }
public Bitmap Icon { get { return this._icon; } }
public ClientAttribute(string Name, string Description, string IconFile = null)
{
this._name = Name;
this._description = Description;
this._icon = new Bitmap(IconFile);
}
}
Le problème est que, dans cette méthode, je dois publier les fichiers d'icônes avec ma version comme est et ne peut pas les ajouter aux ressources. Je serai heureux d'entendre une méthode que je peux encore intégrer les icônes dans les ressources.
Est-ce WinForms ou WPF? – flq
En aparté, vous ne devriez probablement pas appeler 'new bitmap (IconFile)' quand 'IconFile' est' null'. – Timwi
ouais je viens de coller le squelette ici et c'est winforms. – HuseyinUslu