Доступ к свойствам пользовательского класса, когда основное соединение было закрыто - PullRequest
1 голос
/ 16 июля 2011

Я строю библиотеку классов Messenger.Войдя в систему, вы можете получить доступ к списку пользовательских объектов через msgrinstance.Users.Эти пользователи имеют такие свойства, как LoginName, FriendlyName, DisplayPicture.

Если вы попытаетесь получить доступ к .Users после выхода из системы, генерируется исключение NotLoggedInException.И для любых пользовательских классов, которые были созданы при входе в систему, если вы попытаетесь получить доступ к любому из их свойств, вы снова получите NotLoggedInException.

Это хороший способ сделать что-то?Возможно, для пользовательских свойств мне следует создать исключение InvalidOperationException, поскольку пользовательский класс больше не связан с основным классом Messenger?

1 Ответ

1 голос
/ 16 июля 2011

Вместо добавления элемента управления в любое свойство я бы добавил элемент управления в функцию, которая запрашивает эту информацию у объекта, или просто очищал бы коллекцию пользователей после выхода из приложения.

Или, если вы просто хотите по какой-то причине иметь список пользователей даже после выхода из системы, я бы лично предложил не генерировать исключение, а вернуть какое-то "недействительное" значение.

EDIT:

Если клиент хранит только ссылку на объект User, он не может создать проблему, если не для сбора GC, но он определенно может создать проблему в тот момент, когда он решит что-то с ним сделать, поэтому вызовите функцию, так добавьте обработку ошибок в ваш доступ к API.

Надеюсь, это поможет.

Привет.

...