netdragon16888 发表于 2023-10-7 22:51:51

关于CS1061错误的 请帮忙有经验的指点修改下代码

我所使用的是vs.net2010开发的项目(光盘的项目例子),指定的程序是autoCAD2008现在用vs.net2017打开,引用的是autoCAD2016的accoremgd.dll,AcCui.dll,AcDbMgd.dll,AcMgd.dll,并且把目标框架从.Net Framework 3.5 改成4.6.1
以下的红色是出错的代码,vs显示波浪线


public static void SendCommand(this Document doc, params string[] args)
      {
            Type AcadDocument = Type.GetTypeFromHandle(Type.GetTypeHandle(doc.AcadDocument));
            try
            {
                // 通过后期绑定的方式调用SendCommand命令
                AcadDocument.InvokeMember("SendCommand", BindingFlags.InvokeMethod, null, doc.AcadDocument, args);
            }
            catch // 捕获异常
            {
                return;
            }
      }
生成时提示

错误        CS1061        “Document”未包含“AcadDocument”的定义,并且找不到可接受第一个“Document”类型参数的可访问扩展方法“AcadDocument”(是否缺少 using 指令或程序集引用?)        DotNetARX        C:\Users\Administrator\Desktop\DotNetARX\2010\CommandTools.cs        113        N/A


如何整改??新手!望详细点说明一下








d1742647821 发表于 2023-10-7 22:51:52

高版本是Document.GetAcadDocument();从属性变成方法了

箭头_Row 发表于 2023-10-11 02:25:37

本帖最后由 箭头_Row 于 2023-10-11 02:47 编辑

缺少引用 ,autoCAD 2013 后有变化
一个非常关键的dll文件被单独拿了出来----AcCoreMgd.dll
需要引用这个类库。

缺少 using 指令,放在Document上会自动提示缺失的using。

netdragon16888 发表于 2023-10-12 10:59:50

d1742647821 发表于 2023-10-11 10:03
高版本是Document.GetAcadDocument();从属性变成方法了

感谢指导!

netdragon16888 发表于 2023-10-12 11:01:20

箭头_Row 发表于 2023-10-11 02:25
缺少引用 ,autoCAD 2013 后有变化
一个非常关键的dll文件被单独拿了出来----AcCoreMgd.dll
需要引用这个 ...

引用了autoCAD2016的accoremgd.dll,但是放在document上没有提示using

你有种再说一遍 发表于 2023-12-28 19:28:36

直接用ifox的jing分支,然后你就知道我怎么在08敲代码的了
页: [1]
查看完整版本: 关于CS1061错误的 请帮忙有经验的指点修改下代码