tengo clase de excepción genérica como esto:construida tipo genérico en parte CREF de xml-comentario
public class DuplicateException<TEntity> : Exception
{
public TEntity Entity { get; set; }
}
Y tengo método no genérico capaz de sembrar construida excepción genérica:
void Save()
{
throw new DuplicateException<SomeEntity>();
}
Este El método puede arrojar esta excepción genérica pero solo de este construido tipo DuplicateException<SomeEntity>
y no puede lanzar esta excepción con algún otro parámetro de tipo en lugar de SomeEntity
.
Ahora quiero especificar este hecho en xml-comment para el método Save
. This article describe un poco cómo hacer comentarios métodos con excepción genérica y he tratado de estas dos alternativas:
1) inserta por defauly por autocompletar en VS:
/// <exception cref="DuplicateException{TEntity}" />
2) Sustituido TEntity
con SomeEntity
/// <exception cref="DuplicateException{SomeEntity}" />
pero en ambos casos la salida XML todavía afirma que este método puede lanzar genérica no construida tipo que no menciona SomeEntity
en absoluto:
<exception cref="T:MyNameSpace.DuplicateException`1" />
¿Es necesario lanzar una excepción genérica? El único uso de eso sería si un fragmento de código en particular podría lanzar DuplicateException y DuplicateException , y solo desea capturar una pero no la otra. –
Bien, pero ¿por qué no tener solo una DuplicateException que podría arrojarse desde cualquier método Save *? ¿Por qué necesita ser genérico? –
Ser fuertemente tipado realmente no te da mucho. Sí, puede tener una propiedad fuertemente tipada con el objeto que se estaba guardando. Pero, ¿qué vas a hacer con esa propiedad fuertemente tipada? Creo que estarás mejor con una excepción no genérica aquí. –