大佬教程收集整理的这篇文章主要介绍了IPayIssueService”不包含“IssueVoucher”的定义,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在我正在处理的项目中,Interface
和 Class
之间的结构如下:
Business.Treasury
的 Classlibrary
包含:
// namespace Business.Treasury.Fiscaltransaction.services
internal class PayIssueservice
: FiscaltransactionIssueservice<Paymodel,PY_Pay_c,v_PY_Pay_c,PaySubModel,transactiondiStributionModel>,IPayIssueservice
{
}
// namespace Business.Treasury.Fiscaltransaction.services
internal class FiscaltransactionIssueservice<TMasterModel,TMasterEntity,TMasterVwEntity,TMajorDetailmodel,TMinorDetailmodel>
: IssueVoucherservice,IFiscaltransactionIssueservice<TMasterModel>
{
}
Business.Treasury.Public
的 Classlibrary
包含:
// ns: Business.Treasury.Public.Fiscaltransaction.Interfaces.services
public interface IFiscaltransactionIssueservice<TMasterModel>
: IISsueVoucherservice
{
}
// ns: Business.Treasury.Public.Fiscaltransaction.Interfaces.services
public interface IPayIssueservice
: IFiscaltransactionIssueservice<Paymodel>
{
}
Business.AccounTing.Public
的 Classlibrary
包含:
// namespace Business.AccounTing.Public.IssueVouchers.services
public abstract class IssueVoucherservice : IISsueVoucherservice
{
public IssueVoucherModel IssueVoucher(
PriMaryFiltersModel filtersModel,IssueVoucherModel issuevoucher,List<IssueVoucherSubModel> details)
{
//implementation
}
}
// namespace Business.AccounTing.Public.IssueVouchers.Interfaces
public interface IISsueVoucherservice
{
IssueVoucherModel IssueVoucher(
PriMaryFiltersModel filtersModel,List<IssueVoucherSubModel> details);
}
此外,Business.Treasury
有来自 Business.AccounTing.Public
和 Business.Treasury.Public
的引用。 Business.Treasury.Public
也有来自 Business.AccounTing.Public
的引用。很明显,由于继承,PayIssueservice
继承了 IssueVoucher
方法。并且整个项目对 IOCContainer
使用 DependencyInjection
最后,在另一个 Classlibrary
中我正在实现 API
并使用 IPayIssueservice
:
// namespace WebAPI.Treasury.Controllers.V01.Voucher
public class PayIssueVoucherController : APIControllerBase
{
IPayIssueservice _payIssueservice;
PayIssueVoucherController()
{
_payIssueservice = MyResolver.Container
.Resolve<IPayIssueservice>(mvcValIDationDictionary);
}
public async Task<IhttpActionResult> InsertAsync(
[FromBody] InsertPayIssueVoucherDto insertPayIssueVoucherDto)
{
//...
var res = _payIssueservice.IssueVoucher(
new PriMaryFilterModel(),issueVoucherModel,lstIssueVoucherSubModel);
//...
}
}
当我想调用 IssueVoucher
时,它会抛出异常:IPayIssueservice does not contain a deFinition for IssueVoucher
。当我的 Class
继承 IssueVoucher
方法时,为什么代码会抛出此异常?
当我看到 Stack Trace
的异常时,它有以下消息:Anonymously Hosted DynamicMethods Assembly
。在我的代码的一部分中,在 PayIssueVoucherController
中,我使用了返回 dynamic
值的方法:
private dynamic OtherParam()
{
return new AccounTingVoucherIssuanceModel
{
CompanyId = Common.Security.Authorization.Authorization.CurrentCompanyId,FiscalYearID = Common.Security.Authorization.Authorization.CurrentYearId,AccVchIssMergeDebitArticles = false,AccVchIssMergeCreditArticles = false,};
}
我在 InsertAsync
中使用了它:
///...
var otherParam = OtherParam();
var lstIssueVoucherSubModel = GetIssueSubListModel(insertPayIssueVoucherDto,otherParam);
///...
我不知道为什么它与 PayIssueVoucherController
中的另一个方法有关,但是将 OtherParam
的输出类型更改为 Class
解决了我的问题!如果有人知道原因,它将帮助我理解为什么会导致错误!
以上是大佬教程为你收集整理的IPayIssueService”不包含“IssueVoucher”的定义全部内容,希望文章能够帮你解决IPayIssueService”不包含“IssueVoucher”的定义所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。