如何实现像IAbpSession这样的属性注入?

我正在尝试实现我自己的自定义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?


MMMHUHU
浏览 170回答 1
1回答

噜噜哒

ABP 使用 Castle Windsor 进行依赖和属性注入:如何注入属性依赖项的属性注入旨在在创建组件时在组件激活期间完成。默认情况下,确定用于注入的属性的责任是通过PropertiesDependenciesModelInspector-IContributeComponentModelConstruction使用以下所有标准来确定属性是否表示依赖项的实现:具有“公共”可访问的 setter是一个实例属性如果ComponentModel.InspectionBehavior设置为PropertiesInspectionBehavior.DeclaredOnly,则不被继承没有参数没有用Castle.Core.DoNotWireAttribute属性注释所以让它public:// protected IEdwardSession EdwardSession { get; set; }public IEdwardSession EdwardSession { get; set; }
打开App,查看更多内容
随时随地看视频慕课网APP