IPayIssueService' 不包含 'IssueVoucher' 的定义

IPayIssueService' does not contain a definition for '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,
        IssueVoucherModel issuevoucher,
        List<IssueVoucherSubModel> details);
}

此外 Business.Treasury 参考了 Business.Accounting.PublicBusiness.Treasury.PublicBusiness.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 中,我使用了方法 which returns dynamic value:

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解决了我的问题!如果有人知道原因,它将帮助我理解为什么会导致错误!