この属性はC#で動作するはずですが、私の場合はそうではありません。 私はレイジープロパティの子を持つクラスを持っています。このプロパティにアクセスすると、サーバーへのラウンドトリップの副作用が生じる可能性があります。だから当然、私はデバッガのウォッチウィンドウでそれを見るだけで、これが起こらないようにしています。DebuggerDisplay属性が期待通りに機能しません。
[DebuggerDisplay("(Frozen) {m_children}")]
public IList<IEntityBase> Children
{
get
{
if (m_children == null)
{
m_children = FetchChildrenFromDB(this);
}
return m_children;
}
}
そして、まだ、私はオブジェクトを見て、私は意味、表示中(冷凍)に表示されていないウォッチウィンドウでthis
を展開したとき:ソースはかなり普通に見えるすべての無関係な細部を省略
デバッガは単に属性を無視します。画像リンクを提供
は、それが下に表示する必要があり、まだ有効です。 http://i28.tinypic.com/2zxo9s5.jpg DebuggerDisplay image snapshot http://i28.tinypic.com/2zxo9s5.jpg属性がリフレクターによると、実際にそこにあります。私はVS2008を使用します。
アイデア?
誤って独自のDebuggerDisplay属性を導入していないことを確認しましたか?おそらくデバッグの問題がありますか? –
これがORM実装の一部である場合、観測可能なプロパティを実装するために、ORMフレームワークが実際のオブジェクトの周りにシムレイヤを作成している可能性がありますか?私はこれらのことが起こったのを見ました。その場合、オブジェクトのタイプがあなたのソースコードと一致しません。あなたはあなたがソースコードで持っている正確なタイプを見ていることを確認できますか? –
コードはクライアント側のコードです。 ORMはその側で使用されません。私たちはサーバー側でNHibernateを使用しますが、クライアント側はそれから完全に切り離されています。私はそれがシムではないと確信しています。 – mark