@@ -180,10 +180,6 @@ public override JsonResult Json(object data)
180180 public virtual IDbConnection Db => ServiceStackProvider . Db ;
181181
182182 public virtual IRedisClient Redis => ServiceStackProvider . Redis ;
183-
184- #if NET472 || NETSTANDARD
185- public virtual ValueTask < IRedisClientAsync > GetRedisAsync ( ) => ServiceStackProvider . GetRedisAsync ( ) ;
186- #endif
187183
188184 public virtual IMessageProducer MessageProducer => ServiceStackProvider . MessageProducer ;
189185
@@ -199,32 +195,26 @@ public override JsonResult Json(object data)
199195
200196 public virtual bool IsAuthenticated => ServiceStackProvider . IsAuthenticated ;
201197
202- public virtual IAuthSession GetSession ( bool reload = true ) => ServiceStackProvider . GetSession ( reload ) ;
198+ protected virtual IAuthSession GetSession ( bool reload = true ) => ServiceStackProvider . GetSession ( reload ) ;
203199
204- public virtual Task < IAuthSession > GetSessionAsync ( bool reload = false , CancellationToken token = default ) =>
200+ protected virtual Task < IAuthSession > GetSessionAsync ( bool reload = false , CancellationToken token = default ) =>
205201 ServiceStackProvider . GetSessionAsync ( reload , token ) ;
206202
207- public virtual Task < TUserSession > SessionAsAsync < TUserSession > ( CancellationToken token = default ) =>
203+ protected virtual Task < TUserSession > SessionAsAsync < TUserSession > ( CancellationToken token = default ) =>
208204 ServiceStackProvider . SessionAsAsync < TUserSession > ( token ) ;
209205
210206 //don't expose public generic methods in MVC Controllers
211- public virtual TUserSession SessionAs < TUserSession > ( ) => ServiceStackProvider . SessionAs < TUserSession > ( ) ;
207+ protected virtual TUserSession SessionAs < TUserSession > ( ) => ServiceStackProvider . SessionAs < TUserSession > ( ) ;
212208
213209 [ Obsolete ( "Use SaveSessionAsync" ) ]
214- public virtual void SaveSession ( IAuthSession session , TimeSpan ? expiresIn = null ) => ServiceStackProvider . Request . SaveSession ( session , expiresIn ) ;
210+ protected virtual void SaveSession ( IAuthSession session , TimeSpan ? expiresIn = null ) => ServiceStackProvider . Request . SaveSession ( session , expiresIn ) ;
215211
216- public virtual Task SaveSessionAsync ( IAuthSession session , TimeSpan ? expiresIn = null , CancellationToken token = default ) =>
212+ protected virtual Task SaveSessionAsync ( IAuthSession session , TimeSpan ? expiresIn = null , CancellationToken token = default ) =>
217213 ServiceStackProvider . Request . SaveSessionAsync ( session , expiresIn , token ) ;
218214
219- public virtual void ClearSession ( ) => ServiceStackProvider . ClearSession ( ) ;
215+ protected virtual void ClearSession ( ) => ServiceStackProvider . ClearSession ( ) ;
220216
221- public virtual Task ClearSessionAsync ( CancellationToken token = default ) => ServiceStackProvider . ClearSessionAsync ( token ) ;
222-
223- public virtual T TryResolve < T > ( ) => ServiceStackProvider . TryResolve < T > ( ) ;
224-
225- public virtual T ResolveService < T > ( ) => ServiceStackProvider . ResolveService < T > ( ) ;
226-
227- public virtual object ForwardRequestToServiceStack ( IRequest request = null ) => ServiceStackProvider . Execute ( request ?? ServiceStackProvider . Request ) ;
217+ protected virtual Task ClearSessionAsync ( CancellationToken token = default ) => ServiceStackProvider . ClearSessionAsync ( token ) ;
228218
229219 public virtual IServiceGateway Gateway => ServiceStackProvider . Gateway ;
230220 public virtual RpcGateway RpcGateway => ServiceStackProvider . RpcGateway ;
@@ -247,10 +237,24 @@ protected override void Dispose(bool disposing)
247237 EndServiceStackRequest ( ) ;
248238 }
249239
250- public virtual void EndServiceStackRequest ( ) =>
240+ protected virtual void EndServiceStackRequest ( ) =>
251241 HostContext . AppHost . OnEndRequest ( ServiceStackRequest ) ;
252242 }
253243
244+ // Move non session public convenience methods out of ServiceStackController so it doesn't interfere with routes.MapMvcAttributeRoutes()
245+ public static class ServiceStackControllerExt
246+ {
247+ public static object ForwardRequestToServiceStack ( this ServiceStackController controller , IRequest request = null )
248+ => controller . ServiceStackProvider . Execute ( request ?? controller . ServiceStackProvider . Request ) ;
249+
250+ #if NET472 || NETSTANDARD
251+ public static ValueTask < IRedisClientAsync > GetRedisAsync ( this ServiceStackController controller ) =>
252+ controller . ServiceStackProvider . GetRedisAsync ( ) ;
253+ #endif
254+ public static T TryResolve < T > ( this ServiceStackController controller ) => controller . ServiceStackProvider . TryResolve < T > ( ) ;
255+ public static T ResolveService < T > ( this ServiceStackController controller ) => controller . ServiceStackProvider . ResolveService < T > ( ) ;
256+ }
257+
254258#if ! NETSTANDARD
255259 public class ServiceStackJsonResult : JsonResult
256260 {
0 commit comments