调用接口方法C#

时间:2014-05-08 04:37:45

标签: c# interface virtual

我正在开发一个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);
    }

我该怎么做?

2 个答案:

答案 0 :(得分:4)

由于LogExceptionimplemented explicitly,您必须在调用之前强制转换为IExceptionLogger

public ActionResult Index(ExceptionDetail exceptionDetail)
{
    ((IExceptionLogger)exceptionDetail).LogException();

     return View(exceptionDetail);
}

为了使其无需强制转换,隐式实现方法:

void LogException(ExceptionDetail exceptionDetail)
{
}

答案 1 :(得分:0)

直接调用LogException()。它不起作用吗?