0

プロジェクトの認証用のクラスを作成しました。

私は自分のウェブサイトとモバイルアプリケーションでそれを使用したいのですが、なぜこのクラスには静的コンストラクターがあり、一度インスタンスを取得する必要があるのか​​ 、うまく機能しませんでした。つまり、各アプリケーションのインスタンスを一度取得したいということです。

私はそれを修正する方法を知りたいですか?

4

1 に答える 1

0

シングルトンパターンを探しているように思えます。

「各アプリケーションのインスタンスを一度取得したいということです。」

アプリケーションごとに 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. 
}

まず、これが良い解決策かどうかはわかりません。承認は通常、さまざまなアプリケーションから更新されるため、認証を時々フラッシュする方がよい場合があります。

次に、メンバー関数は複数のスレッドから呼び出すことができることに注意してください。このようにしたい場合は、使用するフィールドに (直接的または間接的に) ロックを使用する必要があります。あなたが何をしているのかを必ず知っておいてください。

これらすべてを適切な方法で (および他の多くの問題を) 解決する代替ソリューションがあります。これはデータベースと呼ばれます。あなたはそれを使用することを検討したいかもしれません。

于 2015-07-29T06:06:57.797 に答える