IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

Probleme classe shared


Sujet :

Silverlight

  1. #1
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut Probleme classe shared
    Bonjour a tous, je réalise une application avec RIA Services et le template Navigation Application et j'ai un problème lorsque j'essaye de créer mes propres ValidationAttribute.

    Par exemple, je créé une classe comme ceci, nommer StringHttpBegin.shared.cs qui est sensé tester si le début d'un url est correcte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.ComponentModel.DataAnnotations;
    using System.Windows.Ria;
     
    namespace FavorisHomePage.Web
    {
        public class StringHttpBegin : ValidationAttribute
        {
            public override bool IsValid(object value)
            {
                if (value.ToString().Substring(0,7)!="http://" && value.ToString().Substring(0,8)!="https://")
                {
                    return false;
                }
                return true;
            }
        }
    }
    Du coté du serveur (.web) il n'y pas de pb, mais lorsque je fait un rebuild, il copie donc le fichier sur la partie client et là, la fonction IsValid n'est pas reconnu. Il me met l'erreur (impossible de compiler) :
    'FavorisHomePage.Web.StringHttpBegin.IsValid(object)': no suitable method found to override
    J'ai une classe autre classe User.shared.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    namespace FavorisHomePage.Web
    {
     
        public partial class User
        {
            public string FullName {
                get { return this.User_Name + " " + this.User_FirstName; }
            }
        }
    }
    qui elle fonctionne très bien et est bien dupliqué coté client.

    Je ne comprends pas trop d'où peut venir mon erreur ?

    Merci de votre aide, Cordialement MoZo

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Apparemment le ValidationAttribute côté Silverlight n'a pas de méthode IsValid(object value) mais seulement une méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ValidationResult IsValid(object value, ValidationContext validationContext)
    Essaye de faire un override sur celle là à la place.

  3. #3
    Membre éclairé Avatar de Mozofeuk
    Inscrit en
    Novembre 2007
    Messages
    326
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 326
    Par défaut
    Merci Skyounet, tu as raison en vérifiant coté silverlight il ne connais que cette méthode. J'ai donc essayé comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
            {
                ValidationResult retval;
                if (value.ToString().Substring(0, 7) != "http://" && value.ToString().Substring(0, 8) != "https://")
                {
                    retval = new ValidationResult("Url Link must begin by http:// or https://");
                }
                else
            	{
                    retval = ValidationResult.Success;
                }
                return retval;
            }
    Je place mon attribut dans les metadata comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [Required(ErrorMessage = "Required attribute")]
                [StringHttpBegin()]
                public string Link_Url;
    Et ça fonctionne, bizarre que dans le Tuto de davrous, il utilise le bool IsValid(object value)

    En tous cas cela fonctionne, merci Skyounet, Cordialement MoZo

  4. #4
    Membre éclairé Avatar de LeonardL
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 57
    Par défaut
    Les technos évoluent au fil des versions !

    Il est pas rare de voir certaines fonctionnalités disparaître lorsqu'il ne s'agit que de preview...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. hibernate problem (classe not mapped)
    Par oughlad dans le forum Hibernate
    Réponses: 11
    Dernier message: 25/06/2007, 19h57
  2. [probleme] classe de base non définie
    Par aswat dans le forum C++
    Réponses: 14
    Dernier message: 23/02/2007, 20h42
  3. probleme classe apres ajout de variable
    Par croc14 dans le forum Visual C++
    Réponses: 6
    Dernier message: 11/08/2006, 21h03
  4. probleme classe non trouvee
    Par foulla002 dans le forum Langage
    Réponses: 19
    Dernier message: 26/07/2006, 14h46
  5. probleme classe et chaines de caractères
    Par oilv dans le forum C++
    Réponses: 12
    Dernier message: 18/02/2006, 10h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo