2013-11-22 3 views
0

.NET 4.5가 설치된 Windows 8 컴퓨터에서 VS 2010 SP1 SP 1에서 컴파일 된 C# 프로젝트를 실행하고 있습니다.내 메소드가 호출되지 않는 이유는 무엇입니까?

나는처럼 보이는 방법을 다음과 같은 클래스에서

private IEnumerable<TModel> ExecuteAndGet<TModel>(string name, IEnumerable<SqlParameter> parameters) 
     where TModel : new() 
{ // <-- Breakpoint 1 

    // Non-trivial code so I doubt the method call is being optimized away 
    // Or something if that's even possible. 
} 

를 내가 그렇게 좋아 ExecuteAndGet 전화를 다른 방법 :

this.ExecuteAndGet<object>("[dbo].[SomeStoredProcedure]", parameters); // <-- Breakpoint 2 

확실히 그 방법의 유일한 과부하입니다 . 디버그 모드에서 프로그램을 실행하는 동안 나는 Breakpoint 2를 쳤다. 나는 보통의 "F5"와 "Step INTO"를 시도했지만, 완전히 메소드 내로 들어가는 것은 건너 뛴다. 그리고 breakpoint 1을 건너 뛴다. 왜 이런 일이 일어나는지 모른다. ExecuteAndGet에 대한 다른 전화가 작동 중이며 왜 이것이 다른지 알 수 없습니다. 도와주세요?

감사합니다.

+0

코드를 더 게시 할 수 있습니까? 그것은 당신이 생각하는 무언가에 의한 것일 수도 있습니다. –

+2

빌드를 완료 했습니까? 프로젝트의'Clean'과'build'를 시도해보고 도움이되는지 확인하십시오. – Default

+0

오류가 있습니까? – P5Coder

답변

3

실제로 열거되지 않았습니다. 시도 :

this.ExecuteAndGet<object>("[dbo].[SomeStoredProcedure]", parameters).ToList(); 
+0

아 완벽한. 그게 효과가 있었어! 모두에게 감사합니다 :) –

1

반환되는 열거 형은 반복기 블록으로 구현됩니다. 반복자 블록 내부의 코드는 처음 열거 될 때까지 실제로 실행되지 않습니다 (예 : 통화 추가 .ToArray() 또는 .ToList()

관련 문제