이전의 asp.net 웹 양식 페이지로 작업하고 DI를 작동 시키려고했지만 일부 오브젝트가 생성되지 않아서 문제가 발생하여 코드에서 지연 구현을 목표로합니다. .SimpleInjector 게으른 일반 등록
나는이 웹 사이트의 나머지 부분에서 작업 다음 등록 :
container.Register(typeof(IDataFactory<,>), new[] { typeof(SqlAccountFactory).Assembly });
내가
container.Register<Lazy<IDataFactory<SqlAccountFactory, int>>>(
() => new Lazy<IDataFactory<SqlAccountFactory, int>>(
container.GetInstance<IDataFactory<SqlAccountFactory, int>>));
을 시도 게으른 측면을 얻으려면
이것의 결과는 속성을하지 않는다는 것입니다 채워진다. 페이지의 코드 숨김에서
부동산 (게으른를 사용하지 않을 때이 전술 한 바와 같이 작동) : 코드 비하인드의 속성을 채우는 나는 문서의 코드를 사용하고 참고로
[Dependency]
public Lazy<IDataFactory<SqlAccountFactory, int>> ProjectCodesRepository;
이 속성으로 표시하고 모든 위의 게으른 등록은 잘 작동합니다.
아무도 내가 할 수있는 바보 같은 것을 도울 수 없습니까?
내 문제가 해결되어 등록을 수정하려고하는 속성이 잘못되었습니다. AttributeUsage를 추가하면 나중에이를 막을 수 있습니다. 감사! –
의존성이'Lazy'인 것은 일반적으로 좋지 않습니다. ctors는 종속성을 저장하는 것 이상의 작업을 수행 할 수 없기 때문에 객체 생성은 정말로 빠릅니다. –
Steven