초보자에 대한 강력한 참고 자료입니다. 여기에 분명한 질문이 있으면 죄송합니다.Autofac 2
나는이 페이지에서 읽었습니다 : http://code.google.com/p/autofac/wiki/NewInV2 Autofac 1에서
은 약한 참조는 컨테이너에 의해 개최됩니다. 참조되는 객체가 GC/finalizer 리소스를 해제하기 위해 처분을 사용하지만 dispose 메소드에 응용 프로그램 논리가 포함되어 있으면 GC 타이밍이 예기치 않은 동작을 유발할 수 있습니다.
Autofac 2에는 일반적인 참조가 있습니다. 이 동작을 거부하고 수동으로 처분하려면 ExternallyOwned 등록 수정자를 사용하십시오.
내가 GC에 Autofac에 의해 해결되는 객체를 해제 할 필요가있을 때 그 의미인가, 나는 단순히 말할 수 없다 :
a = null;
을 Autofac는 객체에 대한 강한 참조를 보유하고 있기 때문이다.
public class MyClass
{
public MyClass(Owned<A> a)
{
a.Value.Dosomething();
a.Dispose();
}
}
을하거나 ExternallyOwned 등록 수정 사용 : 대신에, 나는> <을 소유 사용해야한다
나중에builder.RegisterAssemblyTypes(Assembly.GetExecutingAssembly()).ExternallyOwned();
, 나는 GC에 개체를 해제하기 = NULL을 사용할 수 있어야합니다.
맞습니까?
감사합니다.
빠른 답장과 링크를 보내 주셔서 감사합니다! –