В чем смысл этого кода?

Я читаю исходный код для ASP.NET MVC3 и наткнулся на следующее внутри кода для ControllerBase:

public interface IController
{
    void Excecute(RequestContext requestContext);
}


public abstract class ControllerBase : IController
{

    protected virtual void Execute(RequestContext requestContext)
    {
        if (requestContext == null)
        {
            throw new ArgumentNullException("requestContext");
        }
        if (requestContext.HttpContext == null)
        {
            throw new ArgumentException(MvcResources.ControllerBase_CannotExecuteWithNullHttpContext, "requestContext");
        }

        VerifyExecuteCalledOnce();
        Initialize(requestContext);

        using (ScopeStorage.CreateTransientScope())
        {
            ExecuteCore();
        }
    }

    void IController.Execute(RequestContext requestContext)
    {
        Execute(requestContext);
    }
}

ControllerBase обеспечивает реализацию Execute, но тогда у него есть что-то, что дает определение для.. IController.Execute?

Для чего это делается и что этим достигается? Кажется, что это бесполезно.

9
задан Mike Bailey 12 April 2012 в 21:11
поделиться