이 속성은 C#에서 작동해야하지만 내 경우에는 그렇지 않다는 것을 알고 있습니다. 게으른 속성을 가진 클래스가있는 클래스가 있습니다. 이 속성에 액세스하면 서버를 라운드 트립 할 때 부작용이있을 수 있습니다. 그래서, 당연히, 디버거 시계 창에서 이것을 볼 때 자연스럽게 일어나는 것을 원하지 않습니다.DebuggerDisplay 특성이 예상대로 작동하지 않습니다!
모든 관련이없는 사항 생략 소스는 꽤 평범한 같습니다
[DebuggerDisplay("(Frozen) {m_children}")]
public IList<IEntityBase> Children
{
get
{
if (m_children == null)
{
m_children = FetchChildrenFromDB(this);
}
return m_children;
}
}
그리고 아직, 나는 의미 객체를보고 내가 디스플레이에 (냉동)를 참조하지 않는 시계 창에 this
을 확장 할 때 디버거는 단순히 특성을 무시합니다. 영상 링크를 제공
속성이 반사판에 의하면, 실제로 존재한다. VS2008을 사용합니다.
아이디어가 있으십니까?
일부 디버깅 문제로 인해 실수로 자신의 DebuggerDisplay 속성을 도입하지 않았는지 확인 했습니까? –
이것이 일부 ORM 구현의 일부인 경우 관찰 가능한 속성을 구현하기 위해 ORM 프레임 워크가 실제 객체 주위에 심층을 만들었습니까? 이러한 일이 발생하는 것을 보았습니다.이 경우 객체의 유형이 소스 코드와 일치하지 않습니다. 소스 코드에서 가진 정확한 유형을보고 있는지 확인할 수 있습니까? –
코드는 클라이언트 측 코드입니다. ORM이 사용되지 않습니다. 우리는 서버 측에서 NHibernate를 사용하지만, 클라이언트 측은 그것으로부터 완전히 분리됩니다. 나는 그것이 심 (shim)이 아닐 것이라고 확신한다. – mark