X++ "invalid token" message when calling c# library (How to call the method correctly)

X++ "invalid token" message when calling c# library (How to call the method correctly)

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

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");

            
        }
    }
}

当然,就在我屈服并在 SA 上提问时,我在谷歌搜索时偶然发现了答案。

正确的调用方式如下:

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

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

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

其他一些限制是

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

可在 .NET Interop from X++

找到更多信息