이것은 모듈 (예 : 그런 다음
class InjectPropertiesByDefaultModule : Autofac.Module {
protected override void AttachToComponentRegistration(
IComponentRegistration registration,
IComponentRegistry registry) {
registration.Activating += (s, e) => {
e.Context.InjectProperties(e.Instance);
};
}
}
:
builder.RegisterModule<InjectPropertiesByDefaultModule>();
난 당신이 PropertiesAutowired
에 true
paramerter을 오해 할 수 있다고 생각 -이 지원되며 아마 false
을 유지하는 방법을 순환 종속성을 결정합니다. true
설정을 에뮬레이션하려면 위의 Activating
대신 Activated
에 연결할 수 있습니다.
그러나 가능하면 "012"와 같은 "선택적"종속성에 대해서도 생성자 삽입을 사용하십시오. 더 깨끗한 구성 요소 (예 : 필드는 readonly
으로 만들 수 있음)와 종속성을 더 쉽게 이해할 수 있습니다 (모두 생성자에 포함되며 개별 속성의 의미에 대한 추측은 없습니다).
응용 프로그램의 여러 구성이며 일부 구성에서는 종속성이 실제로 없어집니다.
이러한 경우에도 일반적으로 "Null Object"패턴이 더 적합합니다.
Log4Net을 통합하는 경우 http://code.google.com/p/autofac/wiki/Log4NetIntegration에서 확인하십시오. –
Nic. 귀하의 코드에서 "e"는 어디에서 왔습니까? – Simon
감사합니다. Simon - "등록"이되어 있어야합니다 - 지금 고쳐야합니다. –