 | Cette information est obsolète. Les développements de sites web autour de Mercator se font maintenant |
Le message d'erreur suivant peut être rencontré : MissingFieldException : Champ introuvable : MercatorIshopNs.MercatorIshop._TunnelObject
Si une version 1.0.6 ou ultérieure de MercatorIshopAspx.dll est utilisée, il n'est plus autorisé d'adresser directement la propriété _TunnelObject de MercatorIshop. En effet, l'objet tunnel appartient à chaque instance du gestionnaire de pool et donc, il ne pas possible de pouvoir accéder directement à un des ces objets sans en préciser l'instance. Dès lors, il est obligatoire de passer via les méthodes _EvalXxx qui appellent bien la méthode virtuelle nothing() qui sollicite correctement le gestionnaire d'instances.
Dans notre exemple de site complet, la méthode GetCaddie de MasterPage.cs qui était comme suit : (en gras les expressions non autorisées)
protected string GetCaddie()
{
if (MercatorIshop._TunnelObject == null)
return "Votre caddie: 0 article > Eur 0.00 ";
int TotQ = MercatorIshop._EvalInt("pieds_v_tmp.tot_q");
double TotEur = MercatorIshop._EvalDouble("pieds_v_tmp.tot_ttc_dv");
return "[a href=\"ShowCaddie.aspx?topic=0\"]Votre caddie[/a]: [span id=\"tot_q\"]" + TotQ.ToString() + "[/span] article" + Api.Iif(TotQ ] 1, "s", "") + " > EUR [span id=\"tot_eur\"]" + TotEur.ToString(MercatorIshop._TunnelObject.pict_base).Trim() + "[/span]";
}
a été modifiée comme suit :
protected string GetCaddie()
{
return "[a href=\"ShowCaddie.aspx?topic=0\"]Votre caddie[/a]: " + MercatorIshop._EvalString("'[span id='+chr(34)+'tot_q'+chr(34)+']'+ltrim(transform(pieds_v_tmp.tot_q,m.PICT_Q))+'[/span] article'+iif(pieds_v_tmp.tot_q]1,'s','')+' ] EUR [span id='+chr(34)+'tot_eur'+chr(34)+']'+ltrim(transform(pieds_v_tmp.tot_ttc_dv,m.PICT_BASE))+'[/span]'");
}
Dans ces codes HTML, il faut remplacer [ par < et ] par >.