7

私は ASP.NET カスタム コントロールを作成しています。実行時にコード ビハインドからのみ表示されるいくつかのプロパティが必要です。つまり、これらのプロパティは、デザイナーと aspx コードの両方で表示されるべきではありません。このコントロールを含むページの。次の属性を使用しようとしました:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public List<Item> SomeData { ... }

残念ながら、このプロパティは、aspx ページを編集するときに Intellisense コンボボックスに表示されます。サーバー側のコード以外の場所でこのプロパティを非表示にすることはできますか?

4

2 に答える 2

12

これでうまくいくはずです:

//Hide from Designer Property Grid
[Browsable(false)]
// Hide from VS.NET Code Editor IntelliSense
[EditorBrowsable(EditorBrowsableState.Never)]
// Not Serialized in Designer Source code "HTML view"
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public List<Item> SomeData { ... }
于 2010-11-22T05:41:55.640 に答える
2

Amiirの答えは間違いなく機能しますが、属性を適用した後でもIntellisenseにプロパティが表示されることがあることを追加したいと思います。これは、Visual Studio が Intellisense ファイルをキャッシュした結果です。別のマシンで同じプロジェクトをビルドすると、プロパティは表示されません。これが本当に気になる場合は、「C:\Documents and Settings\[YOUR_USER_NAME]\Application Data\Microsoft\VisualStudio\10.0\ReflectedSchemas」フォルダー内のすべてのファイルを削除して、キャッシュをクリアできます。

于 2011-03-03T19:08:56.973 に答える