(Silverlight) WCF Service returning LinkedList -


i calling table-valued function, of database in sql server 2008, wcf service , storing results in linkedlist. on other side when call service , linkedlist, of nodes contains same value. code using follow:

public class user {     public string name;     public string email; }  public class chatservice : ichatservice {   public linkedlist<user> getonlinelist(string email)     {         linkedlist<user> online = new linkedlist<user>();         jabsbasedatacontext db = new jabsbasedatacontext();         iqueryable<onlinelistresult> justonline = db.onlinelist(email);         foreach (onlinelistresult r in justonline)         {             user os = new user()             {                 name = r.fname + " " + r.lname,                 email = r.email             };             online.addlast(os);         }         return online;     } }  chatservice.getonlinelistcompleted += onlineretrieved; chatservice.getonlinelistasync(email); void onlineretrieved(object sender, getonlinelistcompletedeventargs e) {    foreach(user in e.result)    this.dispatcher.begininvoke(() => messagebox.show(us.name+"\n"+us.email)); } 

in onlineretrieved, change code in foreach loop use local var hold user , use that. i.e. change

foreach(user in e.result)    this.dispatcher.begininvoke(() => messagebox.show(us.name+"\n"+us.email)); 

to

foreach(user in e.result) {  user currentuser = us;    this.dispatcher.begininvoke(() => messagebox.show(currentuser.name+"\n"+currentuser.email)); } 

refer why so- problem anonymouse delegate within foreach


Comments