Bonjour
Bon je savais pas trop ou poster ça vu que mon code utilise deux langages ...
Donc voila j'ai un petit soucis j'espère que vous serrez en mesure de m'éclairer un peu
Donc j'ai des .h en C++/CLI qui contiennent des interfaces qui sont en suite utilisée plus loin par des .cpp ... Tout ces points h sont assemblés a la compilation dans une dll.
Mon but est de générer certainnes parties du code des classes interfacées ua l'aide de code en C# dans T4 Editor. J'ai donc essayé de creer un attribute en C++/CLI que je placerais sur les classes que je veux générer uniquement.
La classe Attribute :
Je place en suite mes attributs sur les classes qui doivent êtres générées de cette façon :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public ref class InterfaceGeneratedAttribute: public Attribute { protected: String^ name; public: InterfaceGeneratedAttribute(String^ str) { name = str; } property String^ title { void set(String^ value) { name = value; } String^ get() { return name; } } };
Je génère ma dll pas de warnings.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 [InterfaceGenerated("Light")] public interface class ILight : IDestroyable { ... }
Mais quand je veux charger la dll dans le C# impossible de récupérer des attributs avec ce code :
Malheureusement "attribute" reste vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Assembly asm = Assembly.ReflectionOnlyLoadFrom(@"C:\....dll"); IList<CustomAttributeData> attributes = CustomAttributeData.GetCustomAttributes(asm);
Avez vous une idée ?
La doc dispo sur internet etant très light mise a part la msdn et elle ne couvre presque jamais le chargement depuis une dll.
Partager