/// //////////////////////////////////// /////////////////////////////////
        public override CResultAErreur SetTypeObjetInterroge(CObjetPourSousProprietes objetPourProprietes, IFournisseurProprietesDynamiques fournisseur)
        {
            CResultAErreur result = base.SetTypeObjetInterroge(objetPourProprietes, fournisseur);

            if (!result)
            {
                return(result);
            }
            ObjetPourAnalyseSourceConnu = objetPourProprietes;
            if (objetPourProprietes == null)
            {
                return(result);
            }
            if (DefinitionMethode != null)
            {
                return(result);
            }
            if (DefinitionFonction != null)
            {
                return(result);
            }
            string strNomUpper = m_strNomMethode.ToUpper();

            foreach (CDefinitionProprieteDynamique prop in fournisseur.GetDefinitionsChamps(objetPourProprietes))
            {
                if (prop is CDefinitionMethodeDynamique)
                {
                    if (prop.NomProprieteSansCleTypeChamp.ToUpper() == strNomUpper ||
                        prop.Nom.ToUpper() == strNomUpper)
                    {
                        m_definitionMethode = (CDefinitionMethodeDynamique)prop;
                        return(result);
                    }
                }
                if (prop is CDefinitionFonctionDynamique)
                {
                    if (prop.NomProprieteSansCleTypeChamp.ToUpper() == strNomUpper ||
                        prop.Nom.ToUpper() == strNomUpper)
                    {
                        m_definitionFonction = (CDefinitionFonctionDynamique)prop;
                        return(result);
                    }
                }
            }
            result.EmpileErreur(I.T("The @1 method doesn't exit in the @2 type|120", m_strNomMethode,
                                    objetPourProprietes != null? objetPourProprietes.ToString():"null"));

            return(result);
        }
        /// //////////////////////////////////// /////////////////////////////////
        public override CResultAErreur SetTypeObjetInterroge(CObjetPourSousProprietes objetPourSousProprietes, IFournisseurProprietesDynamiques fournisseur)
        {
            CResultAErreur result = CResultAErreur.True;

            CTypeResultatExpression[] typesAttendus = TypesObjetSourceAttendu;
            foreach (CTypeResultatExpression type in typesAttendus)
            {
                if (objetPourSousProprietes.TypeResultatExpression != null && objetPourSousProprietes.TypeResultatExpression.CanConvertTo(type))
                {
                    CObjetPourSousProprietes objForParametres = GetObjetAnalyseParametresFromObjetAnalyseSource(objetPourSousProprietes);
                    if (objForParametres == null)
                    {
                        objForParametres = objetPourSousProprietes;
                    }
                    return(base.SetTypeObjetInterroge(objForParametres, fournisseur));
                }
            }
            result.EmpileErreur(I.T("@1 cannot be applied to the @2 type|119", GetInfos().Texte, objetPourSousProprietes.ToString()));
            return(result);
        }