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

ASP.NET MVC Discussion :

Tuto MVC - Inconsistent accessibility


Sujet :

ASP.NET MVC

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 70
    Points : 54
    Points
    54
    Par défaut Tuto MVC - Inconsistent accessibility
    Bonjour,

    Je refais le tuto MVC en adaptant pour correspondre aux besoins de mon appli
    J'ai donc une table User (au lieu de Contact)
    J'en suis à l'étape 4 du tuto (à la création des différentes couches) et je rencontre l'erreur suivante lors de la compilation finale:

    Inconsistent accessibility: parameter type 'MvcGap.Models.Validation.IValidationDictionary' is less accessible than method 'MvcGap.Models.UserManagerService.UserManagerService(MvcGap.Models.Validation.IValidationDictionary)'
    pour:
    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
    public class UserManagerService : IUserManagerService
        {
            private IValidationDictionary _validationDictionary;
            private IEntityUserManagerRepository _repository;
     
            public UserManagerService(IValidationDictionary validationDictionary)
                : this(validationDictionary, new EntityUserManagerRepository())
            { }
     
     
            public UserManagerService(IValidationDictionary validationDictionary, IEntityUserManagerRepository repository)
            {
                _validationDictionary = validationDictionary;
                _repository = repository;
            }
    mais aussi
    Inconsistent accessibility: parameter type 'MvcGap.Models.IUserManagerService' is less accessible than method 'MvcGap.Controllers.UserController.UserController(MvcGap.Models.IUserManagerService)'
    pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     public class UserController : Controller
        {
            private IUserManagerService _service;
     
            public UserController()
            {
                _service = new UserManagerService(new ModelStateWrapper(this.ModelState));
     
            }
            public UserController(IUserManagerService service)
            {
                _service = service;
            }
    Avez vous une idée du problème ??
    J'ai essayer de corriger en passant tout en public, mais ca ce fonctionne pas non plus.

    Merci pour votre aide !!

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    IUserManagerService et IValidationDictionary sont private ou protected, tu dois les mettre public

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    Malheureusement ca ne marche pas non plus.
    J'ai tout passé en public, mais cela me génere 3 erreur supplémentaire qui sont :
    Inconsistent accessibility: field type 'MvcGap.Models.Validation.IValidationDictionary' is less accessible than field 'MvcGap.Models.UserManagerService._validationDictionary'
    Inconsistent accessibility: field type 'MvcGap.Models.IEntityUserManagerRepository' is less accessible than field 'MvcGap.Models.UserManagerService._repository'
    et
    Inconsistent accessibility: field type 'MvcGap.Models.IUserManagerService' is less accessible than field 'MvcGap.Controllers.UserController._service'
    Cela pourrait il venir d'un probleme de version ??
    J'utilise pourtant la version 3.5 SP1 du Framework.

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    Arf, je viens de trouver, c'est bien des public qui me manque.
    Merci beaucoup pour l'aide.

    Autre erreur bizard qui vient d'apparaitre maintenant que l'autre est corrigé
    Cannot implicitly convert type 'System.Collections.IEnumerable' to 'System.Collections.Generic.IEnumerable<MvcGap.Models.GAP_DIM_USER>'. An explicit conversion exists (are you missing a cast?)
    Pour ce code ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            public IEnumerable<GAP_DIM_USER> ListUser()
            {
                return _repository.ListUser();
            }
    dans mon public class UserManagerService : IUserManagerService

    Est ce normale ??

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    Bon, j'ai cru trouvé la faute
    j'ai corrigé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public interface IUserManagerService
        {
            bool CreateUser(GAP_DIM_USER userToCreate);
            bool DeleteUser(GAP_DIM_USER UserToDelete);
            bool EditUser(GAP_DIM_USER userToEdit);
            GAP_DIM_USER GetUser(int id);
           IEnumerable ListUser();
            bool ValidateUser(GAP_DIM_USER userToValidate);
        }
    mal écrit

    mais maintenant j'ai cette erreur ci
    'MvcGap.Models.UserManagerService' does not implement interface member 'MvcGap.Models.IUserManagerService.ListUser()'. 'MvcGap.Models.UserManagerService.ListUser()' cannot implement 'MvcGap.Models.IUserManagerService.ListUser()' because it does not have the matching return type of 'System.Collections.IEnumerable'.
    J'ai re parcourus toutes les sources du tuto et il ne me manque rien, je comprend pas ...

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public interface IUserManagerService
        {
            bool CreateUser(GAP_DIM_USER userToCreate);
            bool DeleteUser(GAP_DIM_USER UserToDelete);
            bool EditUser(GAP_DIM_USER userToEdit);
            GAP_DIM_USER GetUser(int id);
           IEnumerable<GAP_DIM_USER> ListUser();
            bool ValidateUser(GAP_DIM_USER userToValidate);
        }

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    Oui c'est bien ça...
    Je m'y perd complètement avec leur tuto.

    J'ai tout refais avec leurs sources et ca plante aussi.

    J'en suis au point 6, et même avec leurs codes j'ai toujours ces erreurs (y en a 6 sur le même point):
    Error 1 'ContactManager.Tests.Models.FakeContactManagerRepository' does not implement interface member 'ContactManager.Models.IContactManagerRepository.DeleteGroup(ContactManager.Models.Group)' d:\profiles\lgirarde.corp\My Documents\Visual Studio 2008\Projects\ContactManager\ContactManager.Tests\Models\FakeContactManagerRepository.cs 7 18 ContactManager.Tests
    Tout mon WE dessus et je ne trouve pas le problème.
    IContactManagerRepository est bien public, DeleteGroup est bien renseigné ...
    pfuu, je sèche.

  8. #8
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Fais voir le code de ton interface et le code l'implémentant

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 70
    Points : 54
    Points
    54
    Par défaut
    Arf, merci pour votre aide.

    J'ai reussis a trouver une solution en farfouillant un peu sur le web, l'erreur viens du tuto. Ils ont omis un passage important qui est difficilement "devinable" (c'est correcte ça ?) pour des néophyte comme moi.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/11/2007, 20h55
  2. Réponses: 11
    Dernier message: 28/08/2007, 12h06
  3. cherche tuto vba sous access
    Par Djohn dans le forum VBA Access
    Réponses: 1
    Dernier message: 26/06/2007, 19h26
  4. Architecture MVC sous Access ?
    Par samtheh dans le forum Modélisation
    Réponses: 1
    Dernier message: 28/04/2007, 11h00

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