MissingFieldException MercatorIshopNs.MercatorIshop._TunnelObject

0000001764     -      03/01/2011
Obsolète

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 >.



Vous consultez une page relative à une version de Mercator qui n'est plus commercialisée ni supportée.

Mercator est une application .net qui utilise une base de données SQL Server. Les informations sur cette page ne correspondent plus à ces caractéristiques.