【问题标题】:X++ "invalid token" message when calling c# library (How to call the method correctly)调用c#库时X++“invalid token”消息(如何正确调用方法)
【发布时间】:2021-03-19 04:30:21
【问题描述】:

我正在尝试使用 x++ 代码创建一个 excel 文件。但是,即使在键入代码时智能感知一切正常,我也会收到编译错误“无效令牌”。在 x++ 中为 OfficeOpenXml 类调用 Add() 方法的正确方法是什么(通常是这样的 c# 库?)

using OfficeOpenXml;
using OfficeOpenXml.ExcelPackage;
using OfficeOpenXml.ExcelRange;

class ExcelTestClass
{
    public static void main(Args _args)
    {
        using (ExcelPackage excel = new ExcelPackage())
        {
            excel.Workbook.Worksheets.Add("Worksheet1");

            
        }
    }
}

【问题讨论】:

    标签: axapta x++ dynamics-365-operations


    【解决方案1】:

    当然,就在我放弃并提出关于 SA 的问题时,我在谷歌搜索时偶然发现了答案。

    正确的调用方式如下:

    excel.get_Workbook().get_Worksheets().Add("Worksheet1");
    

    来自这篇帖子:https://community.dynamics.com/ax/f/microsoft-dynamics-ax-forum/178373/calling-visual-studio-c-classes-in-x/438484Martin Dráb 的回答。

    【讨论】:

      【解决方案2】:

      从 Martin Dráb 的回答中添加一些背景细节:x++ 不支持直接使用 C#/.Net 库中对象的属性。您必须使用 setget 方法来访问它们,这就是为什么 excel.getWorkbook() 有效而 excel.Workbook 无效。

      其他一些限制是

      • 您需要使用完全限定名称
      • 不支持泛型

      更多信息请访问.NET Interop from X++

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-28
        • 1970-01-01
        • 2016-09-02
        • 2019-11-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多