idisposable 객체를 처분하는 것을 잊어 버릴 때 Visual Studio가 경고 할 수 있습니까?
-
23-08-2019 - |
문제
Visual Studio 2008은 idisposable을 구현하는 객체를 처리하는 것을 잊어 버릴 때 경고를 제공 할 수 있습니까?
해결책
Visual Studio는 그 자체 로이 기능이 없지만 Coderush 필요한 경우 블록을 사용하여 삽입 할 수있는 설계 시간 경고 및 리팩토링을 가질 수 있습니다.
다른 팁
FXCOP 디자인 규칙을 켜면 idisposable을 구현하지 않고 다음과 같이 IDISPosable을 구현하는 멤버가있을 때 알려줍니다.
class Program
{
private DataTable NotDisposed;
public Program()
{
NotDisposed = new DataTable();
}
static void Main()
{
}
}
나는 그것이 컴파일 시간에 할 수 있다고 생각하지 않습니다.
그러나 런타임에 수행 할 수 있습니다.
나는 추상 클래스 '일회용'을 만들었습니다 (idisposable을 구현하고 일회용 패턴을 구현). Finalizer에서, 나는 결승 분기가 호출되고 객체가 폐기되지 않았을 때 인식을 발행합니다.
나는 이것을 Ian Griffiths의 기사를 기반으로합니다.
http://www.interact-sw.co.uk/iangblog/2004/04/26/yetmoretimedlocking
C# 또는 VB를 사용하고 있는지 확실하지 않지만 C#에서는 유형의 객체를 처리하는 "모범 사례"방법은 코드를 사용 블록에 배치하는 것입니다.
"사용 명령문을 사용하면 프로그래머는 리소스를 사용하는 객체가 릴리스해야 할 시점을 지정할 수 있습니다. 사용 명령문에 제공된 객체는 idisposable 인터페이스를 구현해야합니다.이 인터페이스는 Dispose 메소드를 제공하여 객체의 리소스를 해제해야합니다." - MSDN 링크
HTH,
-단