Chr☆s Kwok 的技术笔记

.NET, C#, WPF, WCF, WF, .NetCore & LINQ ... I know how it works because I know why it works ...

博客园 首页 新随笔 订阅 管理

当遇到仓储接口无法解析出仓储实现实例时需要手动加载仓储实现的程序集:
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;
            }
        }

 

posted on 2025-12-04 11:42  Chr☆s  阅读(0)  评论(0)    收藏  举报