服务无法向List添加对象

时间:2015-06-06 15:53:47

标签: c# list wcf object add

我正在尝试将用户添加到其他用户的好友列表中。当我运行代码时,一切都按预期工作。除了由于某种原因没有将对象添加到列表中。

当我单击Windows窗体客户端应用程序中具有服务引用服务的按钮时,一切都开始了。这里AddFriend方法返回true。

private void buttonAddFriend_Click(object sender, EventArgs e)
{
    if (SocialNetwork.AddFriend(curUser, textBox1.Text)) // SocialNetwork an instance of SocialNetworkServiceClient
    {
        listBoxFriends.Items.Clear();
        GetFriendList();
        messageLabel.Text = "Friend " + textBox1.Text + " added";
        Debug.WriteLine(curUser.Friends.Count); //curUser is an User object of the current logged in user. The object is passed by the login form to this form.
    }
    else
    {
        messageLabel.Text = "error";
    }
}

private void GetFriendList()
{
    foreach (User u in curUser.Friends)
    {
        Debug.WriteLine("User found");
        listBoxFriends.Items.Add("Name: " + u.Username);
    }
}

这是我的Service类,使用AddFriend方法,该方法使用用户类中的方法。

public class SocialNetworkService : ISocialNetworkService
{
    static SocialNetwork service = new SocialNetwork();

    public User Login(string user, string pass)
    {
        return service.Login(user, pass);
    }

    public Boolean Register(string user, string pass)
    {
        return service.RegisterUser(user, pass);
    }

    public Boolean AddFriend(User user, string friend)
    {
        foreach (User u in service.AllUsers) //The SocialNetwork class contains a List {get; private set;} of all users.
        {
            if (u.Username.Equals(friend))
            {
                return user.AddFriend(u);
            }
        }
        return false;
    }
}

这是我的用户类:

[DataContract]
public class User
{
    [DataMember]
    public string Username { get; private set; }
    [DataMember]
    public string Password { get; private set; }
    [DataMember]
    public List<User> Friends { get; set; }

    public User(string user, string pass)
    {
        this.Username = user;
        this.Password = pass;
        Friends = new List<User>();
    }


    public Boolean AddFriend(User user)
    {

        foreach (User u in Friends)
        {
            if (u.Username.Equals(user.Username))
            {
                return false;
            }
        }

        Friends.Add(user);

        return true;
    }
}

我遗漏了一些无关紧要的东西,比如set方法。

由于某种原因,方法返回true,调试屏幕显示用户已添加到列表中。但是当我试图获取列表或添加另一个朋友时,列表再次为空。

希望你们能帮帮我。

0 个答案:

没有答案