当遇到仓储接口无法解析出仓储实现实例时需要手动加载仓储实现的程序集:
ModuleBase.LoadAssembly("OPPharmacyManagement.Library, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null");
之后就可以用ModuleBase解析方法实例化了。如下:
var placerGroupQueryRepository = ModuleBase.RootContainer.Resolve<IPlacerGroupQueryRepository>();
private byte[] GetPDFFileBytes(IPlacerGroupQuery item, List<IOrderPrescriptionQuery> detials)
{
var order = detials.First();
if (order.SubstanceClass.IsTCM || order.SubstanceClass.IsTCMClass || order.SubstanceClass.IsTCMGranule)
{
return PrinterHelper.CombineTMCBillPrinter.GetPDFBytes(this.ReportPresenter, item, detials);
}
else
{
return PrinterHelper.CombineBillPrinter.GetPDFBytes(this.ReportPresenter, item, detials);
}
}
private IReportPresenter _reportPresenter;
private IReportPresenter ReportPresenter
{
get
{
if (_reportPresenter == null)
{
_reportPresenter = this.UseCase.Items.GetOrCreate<IReportPresenter>(Guid.NewGuid().ToString(), SearchMode.Local);
_reportPresenter.ShowPrintButton = false;
_reportPresenter.ShowRefreshButton = false;
_reportPresenter.ShowDocumentMapButton = false;
_reportPresenter.ShowStopButton = false;
_reportPresenter.ShowExitButton = false;
_reportPresenter.ShowExportButton = false;
}
return _reportPresenter;
}
}
private static Assembly _assembly;
private static void LoadAssembly()
{
if (_assembly == null)
{
_assembly = ModuleBase.LoadAssembly("OPPharmacyManagement.Library, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null");
}
}
private static IPlacerGroupQueryRepository _placerGroupQueryRepository;
private static IPlacerGroupQueryRepository PlacerGroupQueryRepository
{
get
{
if (_placerGroupQueryRepository == null)
{
LoadAssembly();
_placerGroupQueryRepository = ModuleBase.RootContainer.Resolve<IPlacerGroupQueryRepository>();
}
return _placerGroupQueryRepository;
}
}
private static IOrderPrescriptionQueryRepository _orderPrescriptionQueryRepository;
private static IOrderPrescriptionQueryRepository OrderPrescriptionQueryRepository
{
get
{
if (_orderPrescriptionQueryRepository == null)
{
LoadAssembly();
_orderPrescriptionQueryRepository = ModuleBase.RootContainer.Resolve<IOrderPrescriptionQueryRepository>();
}
return _orderPrescriptionQueryRepository;
}
}
浙公网安备 33010602011771号