나는 저장소에서 ID를 찾아서 서로를 참조하는 POCO 개체를 가지고 있습니다. 리포지토리에는 개체를 제거 할 수있는 캐시 정책이 있으므로 개체간에 강력한 참조가 필요하지 않습니다. 그것들을 참조하는 다른 객체는 단지 저장소를 통해 다시로드해야합니다. IoC 컨테이너로 AutoFac을 사용하고 있습니다.약한 레퍼런스 대 Autofac 레졸루션?
아주 간단한 예 - 통화 객체에 대한 지역의 객체 참조 : 나는 두 가지 방법으로 실험 한
class Region
{
...
public Currency GetCurrency()
{
... Get the right Currency object
}
...
}
이 작업을 수행합니다. 첫 번째는 Find (id)를 호출 할 수 있도록 AutoFac에 매번 통화 저장소를 확인하도록 요청하는 것입니다.
두 번째는 WeakReference입니다. 여기서 .IsAlive를 사용하여 .Target을 반환 할 수 있는지 확인하거나 저장소를 확인하고 찾기를 호출하고 내가 가지고있는 것에 대해 약한 참조를해야하는지 확인합니다.
나는 WeakReference가 부과 한 작은 오버 헤드를 연구했지만 매번 해결할 AutoFac을 묻는 것과 비교할 때 확실하지 않습니다.
생각하십니까?
편집 : 리포지토리가 .find에 응답해야하는 시간과 노력을 감안할 때 - 나는 오버 헤드 또는 자동 공격 해결로 WeakReference가 더 비쌉니다.
다른 말로하면 문제가되지 않지만 두 옵션을 모두 사용해보고 결과를 비교하는 것이 좋습니다. –