从 DnnUsers 中的 ArrayList 获取值
Get values from ArrayList in DnnUsers
我关注ArrayList
..
RoleController objRoleController = new RoleController();
ArrayList UserList = objRoleController.GetUsersByRoleName(PortalSettings.PortalId, "Client");
我只想从 UserList 中获取 UserId 和显示名称..我应该怎么做???
UserList 是 UserInfo 对象的列表。您可以从每个 UserInfo 对象的属性中获取值。
试试下面的代码:
RoleController objRoleController = new RoleController();
ArrayList loUserList = objRoleController.GetUsersByRoleName(PortalSettings.PortalId, "Client");
DotNetNuke.Entities.Users.UserInfo loInfo = new UserInfo();
foreach (var foUser in loUserList)
{
loInfo = new UserInfo();
loInfo = (DotNetNuke.Entities.Users.UserInfo)foUser;
int liUserId = loInfo.UserID;
string lsDisplayName = loInfo.DisplayName;
}
如果您有任何问题,请告诉我。
假设您有一个仅包含 UserID 和 DisplayName 的视图模型,如下所示:
public class UserViewModel
{
public int Id { get; set; }
public string DisplayName { get; set; }
}
然后您可以使用以下两种方法之一,具体取决于您使用的 DNN 版本:
public IEnumerable<UserViewModel> GetUsersBefore73()
{
var objRoleController = new RoleController();
ArrayList UserList = objRoleController
.GetUsersByRoleName(PortalSettings.PortalId, "Client");
var users = from user in UserList.OfType<UserInfo>().ToList<UserInfo>()
select new UserViewModel() {
Id = user.UserID,
DisplayName = user.DisplayName
};
return users;
}
在 DNN 7.3 中,我们弃用了实例方法,转而使用工厂来获取角色控制器。我们也停止使用 ArrayList,而是开始使用 List。对于 7.3 及更高版本,您可以使用以下代码:
public IEnumerable<UserViewModel> GetUsersAfter73()
{
IList<UserInfo> UserList = RoleController
.Instance
.GetUsersByRole(PortalSettings.PortalId, "Client");
var users = from user in UserList
select new UserViewModel() {
Id = user.UserID,
DisplayName = user.DisplayName
};
return users;
}
我关注ArrayList
..
RoleController objRoleController = new RoleController();
ArrayList UserList = objRoleController.GetUsersByRoleName(PortalSettings.PortalId, "Client");
我只想从 UserList 中获取 UserId 和显示名称..我应该怎么做???
UserList 是 UserInfo 对象的列表。您可以从每个 UserInfo 对象的属性中获取值。
试试下面的代码:
RoleController objRoleController = new RoleController();
ArrayList loUserList = objRoleController.GetUsersByRoleName(PortalSettings.PortalId, "Client");
DotNetNuke.Entities.Users.UserInfo loInfo = new UserInfo();
foreach (var foUser in loUserList)
{
loInfo = new UserInfo();
loInfo = (DotNetNuke.Entities.Users.UserInfo)foUser;
int liUserId = loInfo.UserID;
string lsDisplayName = loInfo.DisplayName;
}
如果您有任何问题,请告诉我。
假设您有一个仅包含 UserID 和 DisplayName 的视图模型,如下所示:
public class UserViewModel
{
public int Id { get; set; }
public string DisplayName { get; set; }
}
然后您可以使用以下两种方法之一,具体取决于您使用的 DNN 版本:
public IEnumerable<UserViewModel> GetUsersBefore73()
{
var objRoleController = new RoleController();
ArrayList UserList = objRoleController
.GetUsersByRoleName(PortalSettings.PortalId, "Client");
var users = from user in UserList.OfType<UserInfo>().ToList<UserInfo>()
select new UserViewModel() {
Id = user.UserID,
DisplayName = user.DisplayName
};
return users;
}
在 DNN 7.3 中,我们弃用了实例方法,转而使用工厂来获取角色控制器。我们也停止使用 ArrayList,而是开始使用 List。对于 7.3 及更高版本,您可以使用以下代码:
public IEnumerable<UserViewModel> GetUsersAfter73()
{
IList<UserInfo> UserList = RoleController
.Instance
.GetUsersByRole(PortalSettings.PortalId, "Client");
var users = from user in UserList
select new UserViewModel() {
Id = user.UserID,
DisplayName = user.DisplayName
};
return users;
}