Parfois lors du debugage, voir pire, lors du déploiement d'un site ASP, on peut se retrouver avec une message d' erreur des plus étranges. Pour réusmer l'un deux : dans le message il nous est dit que notre classe est ambigue ou se trouve dans deux assembly distincts.... dont un sur dans un répertoire "Temp" perdu au fin fond de la machine.
Plusieurs possibilités de présentent alors :
- Le cas classique où l'on n'a pas utilisé de namespace et que l'on a effectivement deux classes au nom identique dans le projet (c'est mal).
- On à indiquer des référence à des classes (par exemple dans un fichier .ashx).
Dans les deux cas, il est conseillé d' utiliser de namespace, votre code en serra d'autant plus propre. Dans le second cas, il s'agit (comme moi hier) d'un excès de confiance pour lequel il est impératif d' indiquer en plus de la classe l'assembly concerné.
Par exemple :
<%@ WebHandler Language="C#" Class="MonNameSpace.MetaWeblog, MonAssembly" %>
Cette écriture est parfois négligée, mais peut être source de gros soucis et s' avérera fort pratique par la suite si votre code doit migrer : changement de framework ou d'assembly... plus on est rigoureux et moins on a de soucis par la suite.
Note : même si le nom de votre assembly est le même que celui de votre namespace, le soucis existe.
ReNote : on utilise le nom de l'assembly, sans extension :).