Вы не создали список - поэтому roomi.UsersInRoom
имеет значение null.
Вы можете исправить это, изменив строку на:
roomi.UsersInRoom = new List<User>();
roomi.UsersInRoom.Add(usr);
Обратите внимание, что если вы используетеC # 3 или выше, вы можете использовать инициализаторы объектов и коллекций, чтобы упростить весь этот код.Кроме того, вы могли бы потенциально сделать UsersInRoom
свойством только для чтения, установив значение для нового списка в конструкторе Room
(или инициализаторе переменной).
К сожалению, у меня нет времени показыватьвсе это прямо сейчас, но что-то вроде этого для инициализаторов объекта / коллекции:
_rooms.Add(new Room {
RoomId = sessionId,
RoomName = room,
UsersInRoom = new List<User> {
new User {
UserID = sessionID,
CallbackChannel = client,
UserName = userName
}
}
});
Если вы измените его так, что UsersInRoom
инициализируется самой комнатой, это изменится на:
_rooms.Add(new Room {
RoomId = sessionId,
RoomName = room,
UsersInRoom = {
new User {
UserID = sessionID,
CallbackChannel = client,
UserName = userName
}
}
});