2011-12-06 52 views
6

のCREFの一部にジェネリック型を構築しますメソッドはこの一般的な例外をスローすることがありますが、この1つの型の型がDuplicateException<SomeEntity>であり、SomeEntityの代わりに他の型のパラメータでこの例外をスローすることはできません。は、私はこのような一般的な例外クラスを持つXML-コメント

ここでは、Saveメソッドのxml-commentにこの事実を指定します。 This articleはどのように一般的な例外を持つメソッドをコメントに少し説明し、私はこれらの二つの選択肢試してみた:

1)VSでのオートコンプリートでdefaulyによって挿入:

/// <exception cref="DuplicateException{TEntity}" /> 

2)SomeEntity

TEntityを置き換え
/// <exception cref="DuplicateException{SomeEntity}" /> 

どちらの場合でも、出力XMLには、未構成のタイプが含まれていますが、このメソッドはSomeEntityはまったく同じです:

<exception cref="T:MyNameSpace.DuplicateException`1" /> 
+0

一般的な例外をスローする必要がありますか?その唯一の使用は、特定のコードフラグメントがDuplicateException とDuplicateException を潜在的にスローする可能性があり、一方を捕捉したいが他のものを捕捉したくない場合です。 –

+0

しかし、Save *メソッドからスローされる可能性のある単一のDuplicateExceptionを持っていないのはなぜですか?なぜそれは一般的である必要がありますか? –

+0

強く型付けされていても、実際にはあまり得意ではありません。はい、保存されていたオブジェクトで強く型付けされたプロパティを持つことができます。しかし、その強く型付けされたプロパティで何をするつもりですか?私はあなたがここでは非ジェネリックな例外でより良くなると思う。 –

答えて

3

cref属性の目的は、あるタイプのドキュメントにリンクすることです。しかし、具体的なジェネリック型のドキュメントはないので、生成されたcref属性がジェネリック型定義用であることは驚くことではありません。リンクにあるものとは異なるものを表示したいと心配しています。要素の内容はリンクのテキストであるため、要素を使用するときに行うことができます。しかし、要素では、要素の内容は例外が発生したときの記述です。だから私はあなたが探していることをする方法がないと思う。

関連する問題