C# Web API 2'yi kullanarak, bir InvalidOperationException
atar kodum var. 302 durum kodunu döndürürken, HandleException
ek açıklamasını kullanarak yönlendirme için bir konum nasıl sağlanır?302 durum kodu için handexeption ek açıklamasını kullanırken konumu nasıl belirlersiniz?
[HandleException(typeof(InvalidOperationException), HttpStatusCode.Found, ResponseContent = "Custom message 12")]
public IHttpActionResult GetHandleException(int num)
{
switch (num)
{
case 12: throw new InvalidOperationException("DONT SHOW invalid operation exception");
default: throw new Exception("base exception");
}
}
Düzenleme: Üzgünüm, acele biraz bu soru soruldu. Yukarıdaki sınıf, ExceptionFilterAttribute öğesinden devralınan bir HandleExceptionAttribute sınıfı kullanır. Bunu, ünite testlerinde hata ayıklamaya çalıştığım zaman fark etmedim. Sorun bir birim sınamasında ortaya çıkmaz, ancak yönlendirme URL'si gerektiren bir Visual Studio .webtest kullanarak ortaya çıkar. ExceptionFilterAttribute öğesinden devraldığı sınıf, yönlendirilen URL'nin sağlanmasına izin veren bir parametre sağlamaz. Tamamlanmamış bir soru için üzgünüm ve cevap vermek için zaman ayırdığınız için teşekkürler.
/// <summary>
/// This attribute will handle exceptions thrown by an action method in a consistent way
/// by mapping an exception type to the desired HTTP status code in the response.
/// It may be applied multiple times to the same method.
/// </summary>
[AttributeUsage(AttributeTargets.Method, Inherited = false, AllowMultiple = true)]
public sealed class HandleExceptionAttribute : ExceptionFilterAttribute
{
** HandleException ** özniteliği sizin mi? Kullanımını iyileştirmek için neler yapabileceğinizi görmek için kaynak kodunu veya kaynağı bağlantılandırabilir misiniz? – D4rkTiger
İstisna filtresi kullanın ve yönlendirme mantığınızı buradan ayarlayın. Filtrelere koşul tabanlı yönlendirme de koyabilirsiniz. –
Size uygun bir yanıtla size yardımcı olacak daha fazla bilgi verin. –