namespace EveOPreview { /// /// Application controller /// public interface IApplicationController { IApplicationController RegisterView() where TPresenter : class, TView where TView : IView; IApplicationController RegisterInstance(T instance); IApplicationController RegisterService() where TImplementation : class, TService; void Run() where TPresenter : class, IPresenter; void Run(TArgument args) where TPresenter : class, IPresenter; TService Create() where TService : class; } }