idisposable 객체를 처분하는 것을 잊어 버릴 때 Visual Studio가 경고 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1088710

문제

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,

-단

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top