ho classe di eccezione generica come questa:tipo generico costruito in parte CREF di xml-commento
public class DuplicateException<TEntity> : Exception
{
public TEntity Entity { get; set; }
}
E devo metodo non generico che potrebbe gettare costruito eccezione generica:
void Save()
{
throw new DuplicateException<SomeEntity>();
}
Questo il metodo può lanciare questa eccezione generica ma solo di questo tipo costruito DuplicateException<SomeEntity>
e non può lanciare questa eccezione con qualche altro parametro di tipo invece di SomeEntity
.
Ora voglio specificare questo fatto in xml-comment per il metodo Save
. This article descrive un po 'come commentare metodi con eccezione generico e ho provato queste due alternative:
1) Inserti per defauly dal completamento automatico in VS:
/// <exception cref="DuplicateException{TEntity}" />
2) Sostituito TEntity
con SomeEntity
Ma in entrambi i casi l'output XML afferma ancora che questo metodo potrebbe generare il tipo non non costruito che non menziona SomeEntity
affatto:
<exception cref="T:MyNameSpace.DuplicateException`1" />
È necessario generare un'eccezione generica? L'unico uso sarebbe se un particolare frammento di codice potrebbe potenzialmente lanciare DuplicateException e DuplicateException e si desidera catturarne solo uno, ma non l'altro. –
Ok, ma perché non avere una sola DuplicateException che potrebbe essere generata da qualsiasi metodo di salvataggio *? Perché ha bisogno di essere generico? –
Essere fortemente digitato non ti dà davvero molto. Sì, puoi avere una proprietà fortemente tipizzata con l'oggetto che è stato salvato. Ma cosa hai intenzione di fare con quella proprietà fortemente tipizzata? Penso che starai meglio con un'eccezione non generica qui. –