2013-03-29 3 views
3

Ninject 싱글 톤 범위가 ASP.NET MVC에서 어떤 상황에서 유용 할 수 있는지 궁금합니다. 의존성에 변경 될 수있는 속성/변수가없는 상황에서 생각하고있었습니다. 예를 들어, 매퍼 클래스는 단지 하나 또는 두 개의 객체를 가져 와서 새로운 객체에 매핑합니다.Ninject 싱글 톤 범위

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; 

} }

답변

2

예, 그것은 잠재적으로 다른 스레드에 의해 영향을받을 수있는 속성이나 특성을 보유하지 않기 때문에 당신이 SingletonScope()에서 그 클래스를 사용할 수 있지만 당신은 또한 추가하는 것을 알고 있어야합니다 인스턴스 데이터가 코드를 손상시킬 수 있습니다. https://github.com/ninject/ninject/wiki/Object-Scopes과 다른 의견을 참조하십시오 :

현재 싱글 범위에 대한 자세한 내용을보실 수 있습니다 When to use Singleton vs Transient vs Request using Ninject and MongoDB

관련 문제