//-----------------------------------------------------------------------------
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] valeursParametres)
        {
            CResultAErreur  result    = CResultAErreur.True;
            CContexteDonnee ctxDonnee = null;

            if (ctx.ObjetSource is IObjetAContexteDonnee)
            {
                ctxDonnee = ((IObjetAContexteDonnee)ctx.ObjetSource).ContexteDonnee;
            }
            if (ctxDonnee == null)
            {
                ctxDonnee = ctx.GetObjetAttache(typeof(CContexteDonnee)) as CContexteDonnee;
            }
            if (ctxDonnee == null)
            {
                ctxDonnee = CContexteDonneeSysteme.GetInstance();
            }
            CNommageEntite nommage = new CNommageEntite(ctxDonnee);

            //TESTDBKEYOK
            if (nommage.ReadIfExists(m_keyNommageEntite)) //&& nommage.NomFort == m_strNom)
            {
                result.Data = nommage.GetObjetNomme();
            }
            else if (nommage.ReadIfExists(new CFiltreData(CNommageEntite.c_champNomFort + "=@1",
                                                          m_strNom)))
            {
                result.Data = nommage.GetObjetNomme();
            }
            return(result);
        }
        /// //////////////////////////////////////////
        public override CResultAErreur MyEval(CContexteEvaluationExpression ctx, object[] listeParametres)
        {
            CResultAErreur result = CResultAErreur.True;
            string         strVal = listeParametres[0].ToString();

            Type tp = listeParametres[0] as Type;

            if (tp == null)
            {
                tp = CActivatorSurChaine.GetType(strVal, true);
            }
            if (tp == null)
            {
                tp = CActivatorSurChaine.GetType(strVal, false);
            }
            if (tp == null)
            {
                result.EmpileErreur(I.T("The @1 type does not exist|221", strVal));
                return(result);
            }
            if (!typeof(CObjetDonneeAIdNumerique).IsAssignableFrom(tp))
            {
                result.EmpileErreur(I.T("The @1 type cannot be loaded by the 'GetEntite' function|222", strVal));
                return(result);
            }
            try
            {
                CContexteDonnee contexteDonnee = (CContexteDonnee)ctx.GetObjetAttache(typeof(CContexteDonnee));
                if (contexteDonnee == null)
                {
                    contexteDonnee = new CContexteDonnee(CSessionClient.GetSessionUnique().IdSession, true, false);
                    ctx.AttacheObjet(typeof(CContexteDonnee), contexteDonnee);
                }
                CObjetDonneeAIdNumerique obj = (CObjetDonneeAIdNumerique)Activator.CreateInstance(tp, new object[] { contexteDonnee });
                if (listeParametres[1] is int)
                {
                    if (obj.ReadIfExists((int)listeParametres[1]))
                    {
                        result.Data = obj;
                    }
                    else
                    {
                        result.Data = null;
                    }
                }
                // YK 14/04/2011 Surcharge du deuxième paramètre en String Nom de l'entité nommée
                else if (listeParametres[1] is string)
                {
                    CNommageEntite nommage = new CNommageEntite(contexteDonnee);
                    if (nommage.ReadIfExists(new CFiltreData(
                                                 CNommageEntite.c_champTypeEntite + " = @1 AND " +
                                                 CNommageEntite.c_champNomFort + " = @2",
                                                 tp.ToString(),
                                                 (string)listeParametres[1])))
                    {
                        result.Data = nommage.GetObjetNomme();
                    }
                    else if (typeof(IObjetDonnee).IsAssignableFrom(tp))
                    {
                        IObjetDonnee objUniv = (IObjetDonnee)Activator.CreateInstance(tp, new object[] { contexteDonnee });
                        if (objUniv.ReadIfExistsUniversalId((string)listeParametres[1]))
                        {
                            result.Data = objUniv;
                        }
                    }
                    else
                    {
                        result.Data = null;
                    }
                }
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            return(result);
        }