0

具体的には、セッションに保存されたすべての型がシリアライズ可能でなければならないアウト プロセス セッション状態サーバーと互換性のあるアプリケーションを作成しています。

HttpSessionState に入れられた型が Serializable 属性でマークされていることをコンパイル時に確認する方法はありますか。この「無効な」コードの行に沿った何か

public static void Put<T>( string key, T value ) where T : IsMarkedWitheSerializableAttribute
{
   HttpContext.Current.Session[key] = value;
}
4

2 に答える 2

3

いいえ、そのような一般的な制約はありません。属性は通常、型の実装に関する何かを示すことを目的としています。独自のマーカー インターフェイスを導入するか (urgh)、実行時間チェックを挿入して、テストが十分であることを期待する必要があります。

プロパティと属性に関する Eric Lippert の投稿は、こちらで読むとよいでしょう。オブジェクトとタイプについて詳しく話しているため、まったく同じ質問ではありませんが、力学を表現する属性に関しては依然として関連しています。

于 2011-01-26T10:02:01.377 に答える
2

このシナリオでは、カスタム FxCop ルールを作成して警告を生成できます。

Jason Blockのサイトにサンプル ルールがあります。

于 2011-01-26T10:28:33.773 に答える