Lors de l'utilisation du code managé dans InfoPath 2007, vous pouvez être amené à déclarer une variable globale afin de simplifier votre code.
Seulement, en infopath, cela nécessite de passer par l'utilisation d'un FormState (sous peine d'avoir un joli message d'erreur à la publication).
Il existe d'ailleurs un exemple prédéfini et commenté dans chaque formcode d'InfoPath.
La syntaxe à suivre est la suivante:
public partial class FormCode
{
//Variable globales
private string _strConnectionString
{
get {return (string)FormState["_strConnectionString"];}
set {FormState["_strConnectionString"] = value;}
}
...
}
Cela permet de déclarer le formState grâce à un get,set.
Ensuite , cette variable s'utilise simplement de la manière suivante:
- Affectation : FormState["_strConnectionString"] = "test";
- Lecture: string strConnectionString = FormState["_strConnectionString"].ToString();
Avec ceci, les variables globales InfoPath n'ont plus aucun secret pour vous.
Salut,
RépondreSupprimerPersonnellement, j'utilise une connexion au web service Crm Dynamics, et ma variable de connexion (class CrmService) n'arrive pas a être sérialiser avec cette méthode.
private CrmService _crmservice
{
get { return (CrmService)FormState["_crmservice"]; }
set { FormState["_crmservice"] = value; }
}
public static void test()
{
CrmService crmservice = connexion_updateCRM();
FormState["_crmservice"] = crmservice;
}
J'obtients un message d'erreur 'Erreur de sérialisation'.
Quelqu'un aurait une idée sur la procédure a adopter ?
merci