这是我遇到的错误
错误1无法将类型隐式转换
System.Collections.Generic.IList<Model.DTO.RoleDTO>为System.Collections.Generic.List<Model.DTO.RoleDTO>.存在显式转换(您是否错过了演员?)
我的代码:
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 = "administrator@email.com",
role = rl
};
Run Code Online (Sandbox Code Playgroud)
而型号:
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; }
}
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
juh*_*arr 10
只是改变r1为IList<RoleDTO>.
IList<RoleDTO> rl = new List<RoleDTO>();
Run Code Online (Sandbox Code Playgroud)
您不能混合泛型和非泛型列表,因为IList<T>它不会继承IList,List<T>也不会从中继承List,也不会实现IList.
编辑
基于新的错误你有这意味着什么地方你正尝试将转换IList<RoleDTO>到一个List<RoleDTO>不能被隐式进行,因为任何人都可以写一个实现类IList<RoleDTO>.因此,您需要进行显式转换,或更改要匹配的类型.问题是你的当前代码没有显示a IList<RoleDTO>被隐式转换为a的任何地方List<RoleDTO>.但这是我的一些猜测.如果UserDTO.roles实际上被定义为a List<RoleDTO>而不是IList<RoleDTO>那么只需将更改r1定义为a List<RoleDTO>或更改UserDTO.roles为a IList<RoleDTO>.后者是我的偏好.如果要分配UserDTO.roles类型变量,List<RoleDTO>则应更改该变量的类型IList<RoleDTO>.
| 归档时间: |
|
| 查看次数: |
43146 次 |
| 最近记录: |