Bonjour
La compilation de mes applications génère de nombreux Warnings du type:
'MaClasse' n'est pas conforme CLS car il dérive de 'MaClasseDeBase' qui n'est pas conforme CLS.
Est-ce grave, Docteur ?
Comment rendre une classe conforme CLS ?
Version imprimable
Bonjour
La compilation de mes applications génère de nombreux Warnings du type:
'MaClasse' n'est pas conforme CLS car il dérive de 'MaClasseDeBase' qui n'est pas conforme CLS.
Est-ce grave, Docteur ?
Comment rendre une classe conforme CLS ?
Salut .
a priori non ce n'est pas grave tant que tu n'utilises pas d'autre langage dans ton projet.
je m'explique : en dotnet tu peux parfaitement écrire une librairie en C# et l'utiliser avec du VB.NET, c'est la magie de l'IL. Par contre vu les différences au niveau du système entre VB.NET et C# il faut être sur que l'application quand elle utilisera ta dll C# et ton programme VB.NET puisse communiquer parfaitement entre les deux "monde". C'est ce que l'on appel est ClsCompliant.
Tu peux marquer ta classe comme étant ClsCompliant grâce aux attribut :
note : je ne suis pas un pro de VB.NET et le code au dessus est certainement erroné au niveau de la syntaxe.Code:
1
2
3 <ClsCompliant(True)> public class A ...
Sinon si tu es un grand habitué de VB.NET mais pas d'autre langage, tu risques d'avoir des surprises sur les erreurs générés par le vérificateur de conformité ...
Merci pour cette réponse : c'est à peu près ce que j'avais compris, sauf que je ne savais pas comment indiquer que je souhaitais être "cls compliant" (la syntaxe me semble en effet à vérifier).
Je me doute également que cela risque de provoquer une vive réaction chez le compilateur... Aussi, comme je ne suis pas un "cls compliant too much", j'aimerai savoir si l'on ne peut pas empêcher les warnings concernant la conformité CLS .
Ce ne sont que des avertissements tu peux ne pas en tenir compte si tu n'es pas dans le cascité au dessusCitation:
Envoyé par hucliez
Je posais cette question car le nombre de warnings croit trés rapidement au fur et à mesure que je crée des héritiers à mes classes de base... et les autres warnings qui peuvent être interressant à analyser sont un peu noyés.
Mais bon...
Entre temps, j'ai vérifié la syntaxe pour marquer les assemblys avec la conformité CLS, pour ceux que ça interresse :
Si rien de neuf d'ici demain, je marquerai la discussion comme résolue.Code:
1
2 Imports System ... <assembly:CLSCompliant(true)>
encore merci.
je viens de tester sur une classe de base ce qui précède : le résultat est probant : le nombre de warning a considérablement diminué, et pas d'erreur supplémentaire...
tout baigne.