【问题标题】:A class that are got instance once by two different application由两个不同的应用程序获得一次实例的类
【发布时间】:2015-07-29 05:52:41
【问题描述】:

我创建了一个类来验证我的项目。

我想在我的网站和移动应用程序中使用它,但是为什么这个类有一个静态构造函数并且应该一次获取实例,它没有很好地工作,我的意思是我想为每个应用程序获取一次实例.

我想知道如何解决?

【问题讨论】:

  • 您希望静态类在每个应用程序中初始化一次?显示一些代码,如果可能的话,显示一个重现问题的 sn-p。
  • 你明白不同的进程会有不同的静态字段副本等,对吧?
  • 静态是类级别而不是实例级别。检查link

标签: c# class oop constructor static-constructor


【解决方案1】:

听起来你在寻找单例模式。

“我的意思是我想为每个应用程序获取一次实例。”

我假设你的意思是你想为每个应用程序构造一个实例。

最简单的实现是使用这个:

public class MyAuth
{
    private static readonly MyAuth instance = new MyAuth();
    public static MyAuth Instance { get { return instance; } }

    private MyAuth()
    {
        // initialization goes here and will be called once
    }

    // Members. 
}

首先,我不确定这是否是一个好的解决方案。授权通常是从不同的应用程序更新的,因此最好偶尔刷新一下身份验证。

其次,注意成员函数可以从多个线程中调用。如果你想这样做,你必须对你使用的字段使用锁定(直接或间接)。一定要知道你在做什么。

有一种替代解决方案可以巧妙地解决所有这些问题(以及大量其他问题)。它被称为数据库;您可能需要考虑使用它。

【讨论】:

  • 非常感谢,我会再次检查应用程序授权,我认为我没有正确描述我们的问题,我也会尝试单例模式,在这种情况下,这听起来不错的选择方式
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-19
  • 2012-04-05
  • 1970-01-01
  • 1970-01-01
  • 2014-09-20
相关资源
最近更新 更多