我正在开发一个ASP.net MVC应用程序,我有一个控制器ExceptionController
,用于显示我的应用程序中捕获的异常。
此控制器实现接口IExceptionLogger
public class ExceptionController : Controller, IExceptionLogger
{...}
有一种方法void LogException(ExceptionDetail exceptionDetail);
我也在ExceptionController
内实现了这个方法。
void IExceptionLogger.LogException(ExceptionDetail exceptionDetail)
{...}
现在我需要从LogException()
的操作Index
调用方法ExceptionController
。
public ActionResult Index(ExceptionDetail exceptionDetail)
{
// Method must be called here
return View(exceptionDetail);
}
我该怎么做?
答案 0 :(得分:4)
由于LogException
为implemented explicitly,您必须在调用之前强制转换为IExceptionLogger
:
public ActionResult Index(ExceptionDetail exceptionDetail)
{
((IExceptionLogger)exceptionDetail).LogException();
return View(exceptionDetail);
}
为了使其无需强制转换,隐式实现方法:
void LogException(ExceptionDetail exceptionDetail)
{
}
答案 1 :(得分:0)
直接调用LogException()。它不起作用吗?