Non non c'est pas un bug, c'est une vrai feature, c'est même une des forces de .NET/Mono, c'est cette capacité de versionning (et sa granularité). Tu te doutes bien que'entre différentes applications tu risques de retrouver des noms de classes en communs, des def plus ou moins identiques mais parfois dans un contexte totalement différent. C'est pourquoi le CLR assigne des numéros permettant d'indetifier un assembly, une classe une méthode, plutôt que de se contenter de son nom.
(celà ne veut pas du tout dire que tu es obligé de signer numériquement tes assembies avec sn.exe)
Mettre ce code dans une dll commune (avec les defs) ne fonctionne pas: "Cannot find type PluginInterface" a la compilation.
T'as du te planter quelque part.
En général chez moi tout ce qui est partagé par les plugins (donc les defs et sans doute ton PluginInterface) sont dans une dll séparée, dans un namespace, comme ceci :
namespace MonAppli.Core.PluginSystem {
public interface...
public attributes...
}
(le plus souvent c'est même dans le coeur de mon appli, dans MonAppli.Core.dll)
et pour développer un plugin, un développeur odit juste référencer ta dll avec mcs :
mcs -t:library -r:MonAppli.Core.dll
bien sûr dans son code il doit écrire quelquechose comme :
using MonAppli.Core.PluginSystem;
[^] # Re: chezmoicamarche.org
Posté par TImaniac (site web personnel) . En réponse au message Custom attributes: le retour :-(. Évalué à 2.
(celà ne veut pas du tout dire que tu es obligé de signer numériquement tes assembies avec sn.exe)
Mettre ce code dans une dll commune (avec les defs) ne fonctionne pas: "Cannot find type PluginInterface" a la compilation.
T'as du te planter quelque part.
En général chez moi tout ce qui est partagé par les plugins (donc les defs et sans doute ton PluginInterface) sont dans une dll séparée, dans un namespace, comme ceci :
namespace MonAppli.Core.PluginSystem {
public interface...
public attributes...
}
(le plus souvent c'est même dans le coeur de mon appli, dans MonAppli.Core.dll)
et pour développer un plugin, un développeur odit juste référencer ta dll avec mcs :
mcs -t:library -r:MonAppli.Core.dll
bien sûr dans son code il doit écrire quelquechose comme :
using MonAppli.Core.PluginSystem;
pour "importer" les defs.