【问题标题】:Replace static classes / fields in C# MVC4替换 C# MVC4 中的静态类/字段
【发布时间】:2016-01-15 17:34:13
【问题描述】:

使用 Users 类中的函数登录系统的用户。 现在我需要从其他类中读取用户的字段(UserID、FullName、GroupID ...),这在我看来有点复杂...... 我不能在用户类中使用静态变量,因为它们会留在内存中,直到 appdomain 被回收,当然我不能实例化一个新的用户对象,因为我需要已经实例化的信息。

如何从其他类中检索用户字段/属性?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4 oop


    【解决方案1】:

    您需要在ViewData or TempData 中存储一些引用登录用户的内容,例如他们的用户ID。这将允许您根据用户 ID 从数据库中检索他们的信息。

    然后在需要读取此用户数据的类中,您将实例化一个 User 对象(无论您如何命名它)并使用来自该用户的数据库中的数据填充该对象的属性。

    【讨论】:

    • 嗯,没错!但问题是我试图减少数据库连接的数量,所以我想将所有这些信息保存在类属性中
    • 除了每次我需要获取用户信息时,我都必须实例化一个用户类。如果静态只服务于独特的请求,它可能是一个完美的解决方案
    • 在这种情况下,如果这只是暂时的,您可以考虑在 ViewData 中存储 Dictionary 或作为您自己的通用数据结构,但如果您这样做,它会占用您服务器的内存一次将大量用户存储在这里。老实说,除非您的网络或数据库服务器的性能很差,否则您可能会误入微优化 - 只是一个公平的警告。
    • 是的,你是对的!我还发现其他线程推荐几乎相同的解决方案stackoverflow.com/questions/14723486/…
    猜你喜欢
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 2011-04-02
    • 2010-11-22
    • 1970-01-01
    相关资源
    最近更新 更多