从ASP.NET Boilerplate迁移到ABP,AbpSessions.ToUserIdentifier()替代方案是什么?
ABP框架迁移:ToUserIdentifier替代实现方案
在Volo.ABP框架中,原ASP.NET Boilerplate里的AbpSession.ToUserIdentifier()扩展方法已不存在,可通过以下两种方式替代:
直接实例化UserIdentifier类
直接利用ICurrentUser(对应旧框架的IAbpSession)的TenantId和UserId属性创建UserIdentifier对象:
原代码:
UserIdentifier = AbpSession.ToUserIdentifier()
替代代码:
UserIdentifier = new UserIdentifier(CurrentUser.TenantId, CurrentUser.Id);
注:这里的CurrentUser是注入的ICurrentUser接口实例,Volo.ABP中推荐使用ICurrentUser替代旧的IAbpSession。
封装扩展方法复用原有调用方式
如果想保留原代码的调用风格,可以自己封装扩展方法:
public static class CurrentUserExtensions { public static UserIdentifier ToUserIdentifier(this ICurrentUser currentUser) { return new UserIdentifier(currentUser.TenantId, currentUser.Id); } }
之后即可像旧代码一样调用:
UserIdentifier = CurrentUser.ToUserIdentifier();
内容的提问来源于stack exchange,提问作者John Redman
相关产品推荐
相关产品推荐

