우리는 인터셉터 객체를 사용하여 NHibernate에게 엔티티를 저장하기 전에 몇 가지 일반적인 작업을 수행하도록 지시하는 프로젝트를 가지고 있습니다.이 인터셉터는 할일이 하나 있습니다. 이제이 인터셉터에 추가해야 할 또 다른 작업이 있습니다. (NHibernate 여러 인터셉터를 지원하지 않습니다)하지만 난 대신 복잡한이 인터셉터가 나는 모든이 같은 interceptors.something 등록 된 관리하게 구성 패턴을 사용하고자 만들고 싶어하지 않습니다NHibernate IInterceptor composition
public bool Onload(object entity,object id,object[] state,string propertyNames,IType[] types_
{
var result=false;
foreach(var interceptor in _registeredInterceptors)
result=result || interceptor.OnLoad(entity,id,state,propertyNames,types);
return result;
}
public bool OnFlushDirty(object entity,object id,object[] state,string propertyNames,IType[] types_
{
var result=false;
foreach(var interceptor in _registeredInterceptors)
result=result || interceptor.OnFlushDirty(entity,id,state,propertyNames,types);
return result;
}
이 코드 I보고를 나를 반복하지 못하게하는 더 좋은 방법이있을 수 있음을 깨달았습니다. 질문은 람다 식과 yield 키워드를 사용하여이 코드를보다 간단하고 추상적으로 만들 수 있습니까?
나는 클로저를 사용하고 싶기 때문에 람다 식을 언급 했으므로 각 메서드 집합에 대해 개별 대리자를 만들 필요가 없습니다. – Beatles1692