Impossible de convertir implicitement le type de Système.Les Collections.IList' à 'Système.Les Collections.Génériques.Liste

C'est l'erreur que je rencontre

Erreur 1 Impossible de convertir implicitement le type System.Collections.Generic.IList<Model.DTO.RoleDTO> à System.Collections.Generic.List<Model.DTO.RoleDTO>. Une conversion explicite existe (vous manque un plâtre?)

Mon code:

IList<RoleDTO> rl = new List<RoleDTO>();

        rl.Add(new RoleDTO{ roleId = new Guid("D3DCBCDA-AD61-4764-B5A1-057D654F1C26"), 
role = "admin" });


UserDTO user = new UserDTO 
             {
                username = "administrator",
                email = "[email protected]",
                role = rl
             };

Et le modèle:

namespace Model.DTO
{
    public class UserDTO
    {
        public string username { get; set; }
        public string email { get; set; }
        public IList<RoleDTO> role { get; set; }
    }

    public class RoleDTO
    {
        public Guid roleId { get; set; }
        public string role { get; set; }
    }
}

Comment puis-je faire cela correctement?

L'erreur est assez clair. Vous déclarez rl non générique IList, tandis que vous essayez d'attribuer à un IList<RoleDTO> dans UserDTO.role. Changez simplement la déclaration de IList rl à IList<RoleDTO>.
J'ai corrigé les fautes de frappe, aussi j'ai cette erreur : Erreur 1 Impossible de convertir implicitement le type de Système.Les Collections.Génériques.IList<Modèle.DTO.RoleDTO>' pour 'Système.Les Collections.Génériques.Liste<Modèle.DTO.RoleDTO>'. Une conversion explicite existe (vous manque un plâtre?)
Chaque List<T> est un IList<T>, mais pas l'inverse. Basé sur l'édition, je suppose public IList<RoleDTO> role { get; set; } est en fait public List<RoleDTO> role { get; set; }. Lire les erreurs soigneusement.
Je ne reçois pas toutes les erreurs avec ce code.

OriginalL'auteur Gerald Hughes | 2015-05-05