程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了IPayIssueService”不包含“IssueVoucher”的定义大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决IPayIssueservice”不包含“IssueVoucher”的定义?

开发过程中遇到IPayIssueservice”不包含“IssueVoucher”的定义的问题如何解决?下面主要结合日常开发的经验,给出你关于IPayIssueservice”不包含“IssueVoucher”的定义的解决方法建议,希望对你解决IPayIssueservice”不包含“IssueVoucher”的定义有所启发或帮助;

在我正在处理项目中InterfaceClass 之间的结构如下: Business.TreasuryClasslibrary 包含:

// 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.PublicClasslibrary 包含:

// 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.PublicClasslibrary 包含:

// 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.PublicBusiness.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,请注明来意。