2010-05-03 5 views
0

나는 윈저와 함께 풀링 라이프 스타일을 시험해 보았습니다.
ILOGger의 풀을 사용하여 여러 CustomerTask를 작업하게하고 싶습니다.
maxPoolSize보다 더 많은 시간을 해결하려고하면 새 로거가 계속 만들어집니다.윈저와 풀링

나는 무엇을 놓치고 무엇이 최대 수영장 크기의 의미인가?

<component id="customertasks" type="WindsorTest.CustomerTasks, WindsorTestCheck" lifestyle="transient" /> 
<component id="logger.console" service="WindsorTest.ILogger, WindsorTestCheck" type="WindsorTest.ConsoleLogger, WindsorTestCheck" lifestyle="pooled" initialPoolSize="2" maxPoolSize="5" /> 

코드는 다음과 같습니다 :

내가 사용하는 XML 구성은 (데모 코드)입니다

public interface ILogger 
{ 
    void Log(string message); 
} 

public class ConsoleLogger : ILogger 
{ 
    private static int count = 0; 
    public ConsoleLogger() 
    { 
     Console.WriteLine("Hello from constructor number:" + count); 
     count++; 
    } 

    public void Log(string message) 
    { 
     Console.WriteLine(message); 
    } 
} 

public class CustomerTasks 
{ 
    private readonly ILogger logger; 

    public CustomerTasks(ILogger logger) 
    { 
     this.logger = logger; 
    } 
    public void SaveCustomer() 
    { 
     logger.Log("Saved customer"); 
    } 
} 

답변

1

나는 꽤 많은 나를 위해 일을 정리 dotnetslackers에 this 기사를 발견했다.
maxPoolSize은 릴리스 할 때 풀로 반환되는 인스턴스의 최대 개수입니다. 후속 릴리스에서는 오브젝트가 파기됩니다. 내가 눈치 챘을

하나의 부정확성 (성경에 기록 된 이후 아마도 버전 변경에) initialPoolSize 먼저 해결하고 문서 주장과 같은 하지 컨테이너 생성시 생성 된 인스턴스의 수는 있다는 것입니다