Я создал свою собственную архитектуру плагинов, основанную на распространенных практиках, но я застрял с иконками.
Прежде всего, мои плагины определяют клиентов, которые будут использоваться хостом, и каждый клиент определяется с атрибутамикак:
[Client("Heroes of Newerth", "Heroes of Newerth Chat Client", "hon_16.png")]
С этим моим хост-приложением можно прочитать metainfo плагина / клиента без фактического создания его экземпляра, но я застрял с иконкой.
Как и в предыдущем примереНапример, клиент может передать имя файла растрового изображения, и в моей реализации атрибутов я могу обработать его следующим образом:
[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);
}
}
Проблема заключается в том, что в этом методе мне нужно опубликовать файлы значков с моим выпуском как есть ине могу добавить их к ресурсам.Я буду рад услышать способ, которым я все еще могу вставлять значки в ресурсы.