【问题标题】:Access to a user class' properties when main connection has been closed在主连接关闭时访问用户类的属性
【发布时间】:2011-07-16 06:30:06
【问题描述】:

我正在构建一个 Messenger 类库。登录后,您可以通过 msgrinstance.Users 访问用户对象列表的集合。这些用户具有诸如 LoginName、FriendlyName、DisplayPicture 等属性。

如果您在注销后尝试访问 .Users,则会引发 NotLoggedInException。对于在登录时创建的任何用户类,如果您尝试访问它们的任何属性,您将再次收到 NotLoggedInException。

这是一种很好的做事方式吗?也许对于用户属性,我应该抛出 InvalidOperationException,因为用户类不再与主 Messenger 类链接?

【问题讨论】:

    标签: c# properties state messenger


    【解决方案1】:

    我不会在任何 ptoperty 中添加控件,而是在从对象请求该信息的函数中添加控件,或者只是在应用程序注销后清除用户集合。

    或者,如果您出于某种原因只想在注销后也有用户列表,我个人建议不要抛出异常,而是返回一些“无效”值。

    编辑:

    如果客户端只持有一个用户对象的引用,它不会产生问题,如果不是为了 GC 收集,但它肯定会在它决定用它做某事的那一刻产生问题,所以调用一个函数,所以在您的 API 访问中添加错误处理。

    希望这会有所帮助。

    问候。

    【讨论】:

    • 我在注销时清除列表。但是仍然有人可以引用用户对象。
    • 但是这些用户对象只是虚拟持有者还是附加了一些功能?我想说的是,就我而言,最好将错误处理(异常或其他)添加到您的 API 函数中。
    猜你喜欢
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2013-10-30
    • 2012-04-09
    • 1970-01-01
    相关资源
    最近更新 更多