我正在尝试实现我自己的自定义IAbpSession,但我不知道如何实现与IAbpSession. 我AppServiceBase的如下:public abstract class EdwardAppServiceBase : ApplicationService{ public TenantManager TenantManager { get; set; } public UserManager UserManager { get; set; } protected EdwardActiveUnitOfWork EdwardActiveUnitOfWork => (EdwardActiveUnitOfWork)UnitOfWorkManager.Current; protected IEdwardSession EdwardSession { get; set; } // protected IEdwardSession EdwardSession => AbpSession as IEdwardSession; protected SensingStoreCloudAppServiceBase() { // EdwardSession = NullEdwardSession.Instance; LocalizationSourceName = SensingStoreCloudConsts.LocalizationSourceName; }}如果我取消注释EdwardSession = NullEdwardSession.Instance;,我总是得到NullEdwardSession而不是IEdwardSession实现:EdwardSession。我只能这样做AbpSession as IEdwardSession。ABP 如何注入IAbpSession并设置其值ApplicationService?
1 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
ABP 使用 Castle Windsor 进行依赖和属性注入:
如何注入属性
依赖项的属性注入旨在在创建组件时在组件激活期间完成。默认情况下,确定用于注入的属性的责任是通过
PropertiesDependenciesModelInspector
-IContributeComponentModelConstruction
使用以下所有标准来确定属性是否表示依赖项的实现:
具有“公共”可访问的 setter
是一个实例属性
如果
ComponentModel.InspectionBehavior
设置为PropertiesInspectionBehavior.DeclaredOnly
,则不被继承没有参数
没有用
Castle.Core.DoNotWireAttribute
属性注释
所以让它public
:
// protected IEdwardSession EdwardSession { get; set; }
public IEdwardSession EdwardSession { get; set; }
- 1 回答
- 0 关注
- 169 浏览
添加回答
举报
0/150
提交
取消