【问题标题】:Ninject Singleton ScopeNinject 单例作用域
【发布时间】:2013-03-29 13:01:44
【问题描述】:

我想知道 Ninject Singleton 作用域在 ASP.NET MVC 中的哪些情况下可能有用。我在考虑依赖项没有任何可以更改的属性/变量的情况。例如一个映射器类,它只接收一个或两个对象并将其映射到一个新对象。

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;

} }

【问题讨论】:

    标签: asp.net-mvc scope ninject


    【解决方案1】:

    是的,您可以在SingletonScope() 中使用该类,因为它不包含任何可能受其他线程影响的属性或属性,但您还应该注意添加实例数据可能会破坏您的代码。

    您可以在此处阅读有关 Singleton Scope 的更多信息:https://github.com/ninject/ninject/wiki/Object-Scopes 并查看其他意见:When to use Singleton vs Transient vs Request using Ninject and MongoDB

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多