Abp Castle Dependency для инъекций абстрактный класс - PullRequest
0 голосов
/ 04 сентября 2018

Абстрактный класс наследует интерфейс, и затем абстрактный класс имеет несколько реализаций. Как мне внедрить?


Интерфейс:

public interface IStatementsDetailService<T> : IApplicationService where T : ReportFinancialStatementsDetailItem, new()
    {
        /// <summary>
        /// 获取销账明细
        /// </summary>
        /// <param name="requestDto"></param>
        /// <returns></returns>
        Task<ReportFinancialStatementsDetailDto<T>>
            ReportFinancialStatementsDetail(ReportFinancialStatementsDetailRequest requestDto);
    }

абстрактный класс:

public abstract class StatementsDetailBaseService<T> : FanjiaFinancialSystemAppServiceBase, IStatementsDetailService<T> where T : ReportFinancialStatementsDetailItem, new(){
   public abstract Task<ReportFinancialStatementsDetailDto<T>> ReportFinancialStatementsDetail(ReportFinancialStatementsDetailRequest requestDto);
}

A:

public class MICEVisaStatementsDetailService : StatementsDetailBaseService<MICEVisaItem>{
 public async override Task<ReportFinancialStatementsDetailDto<MICEVisaItem>> ReportFinancialStatementsDetail(ReportFinancialStatementsDetailRequest requestDto){
 }
}

B

public class FlightStatementsDetailService : StatementsDetailBaseService<FlightDetailItem>{
 public async override Task<ReportFinancialStatementsDetailDto<FlightDetailItem>> ReportFinancialStatementsDetail(ReportFinancialStatementsDetailRequest requestDto){
 }
}

Это моя инъекция в модуле:

IocManager.Register(
       typeof(IStatementsDetailService<>),
       typeof(StatementsDetailBaseService<>),
       DependencyLifeStyle.Transient);

Но это не может работать

...