3

ASP.NET MVC で Ninject Singleton スコープが役立つのはどのような状況でしょうか。依存関係に変更可能なプロパティ/変数がない状況で考えていました。たとえば、オブジェクトを 1 つまたは 2 つ取り込んで新しいオブジェクトにマップするだけのマッパー クラスです。

public class AccountMapper : IAccountMapper
{
  public IList<WebAccount> Map(Account[] accounts)
  {
    if (accounts == null)
        throw new ArgumentNullException("accounts");

    Account acct;
    List<WebAccount> authorizedAccounts = new List<WebAccount>();
    foreach (var account in accounts)
    {
        if (account.active == 0)
        {
            acct = new WebAccount     (                                                        
                                                account.active == 0 ? true : false,
                                                account.account_number,
                                                account.agreement_no                                                        
                                            );

            if (!string.IsNullOrEmpty(acct.AccountNumber))
                acct.AccountNumber = acct.AccountNumber.Trim();
            if (!string.IsNullOrWhiteSpace(acct.ArgreementNo))
                acct.ArgreementNo = acct.ArgreementNo.Trim();

            authorizedAccounts.Add(acct);

        }
    }
    return authorizedAccounts;

} }

4

1 に答える 1

2

はい、SingletonScope()他のスレッドの影響を受ける可能性のあるプロパティや属性を保持していないため、そのクラスを使用できますが、インスタンスデータを追加するとコードが壊れる可能性があることにも注意してください。

ここでシングルトン スコープの詳細を読むことができます: https://github.com/ninject/ninject/wiki/Object-Scopesおよび他の意見を参照してください:いつシングルトンを使用するか、トランジェントを使用するか、Ninject と MongoDB を使用して要求するか

于 2013-03-29T13:47:20.960 に答える