这是我第一次处理网络服务。我是一名新的C#开发人员,我正在尝试从Web服务中检索用户信息。我能够连接到Web服务并检索信息。现在,我正在尝试打印公司中不同级别的用户列表。问题我得到这种错误,我不知道: foreach语句无法对“UserLib.UserDate”类型的变量进行操作,因为“UserLib.UserData”不包含“GetEnumerator”的公共定义。
我有一个名为UserLib的类库项目,我有两个类。
UserData类代码:
namespace UserLib
{
public class UserData
{
public string username { get; set; }
public string fullName { get; set; }
public string email { get; set; }
public string jobTitle { get; set; }
public string levelCode { get; set; }
}
}
GetUserData类代码:
namespace UserLib
{
public class GetUserData
{
public UserData getUserData(string login)
{
var dat = new UserData //UserData object
{
username = response.Username,
fullName = response.FullName,
email = response.Email,
jobTitle = response.Title,
levelCode = levelCode,
};
return dat;
}
}
}
程序类代码:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please enter the username: ");
Console.WriteLine(" ");
Console.Write("Username: ");
var login = Console.ReadLine();
var getUser = new GetUserData();
var dat = getUser.getUserData(login); // <== class library call
Console.WriteLine("Username: " + dat.username);
Console.WriteLine("Full Name: " + dat.fullName);
Console.WriteLine("Email: " + dat.email);
Console.WriteLine("Job Title: " + dat.jobTitle);
Console.WriteLine("Level Code: " + dat.levelCode);
Console.WriteLine("------------------------");
printAll(login);
}
您能否告诉我如何解决此问题并打印此用户列表?
答案 0 :(得分:2)
UserData
不是IEnumerable
,而是List<UserData>
,它只是一个对象。
您需要一个返回getUsersData
IEnumerable<UserData>
嗯..你的switch
看起来多余。
第一个case
级联到第二个case
..第二个case
与第三个output.Add(users.userName);
相同
那么为什么不只是{{1}}
假设真实代码是您粘贴的内容。
答案 1 :(得分:1)
您的getUserData
方法未返回用户列表,它返回单个UserData
(一个用户的详细信息),因此您不能期望迭代此返回值,就好像这是一个集合。
另外请注意,在UserData
上使用PascalCase作为方法名称和属性名称。