• ArcGIS AddIN开发异常之--修饰符“static”对该项无效


    修饰符“static”对该项无效,

    修饰符“internal”对该项无效.

    该异常弹出的位置为Config.Designer.CS文件中相关插件的声明附近

    internal static string Water_Info_Toolbar.AttributeBrushTool.AttributeBrushTool 
    {
      get { return "llc3s@foxmail.com_Water_Info_Toolbar_AttributeBrushTool"; }
    }

    类似的语句中,存在多处的这种修饰符无效的异常。这个文件为通过向导式新建插件时自动生成的,没有修改过。之前一直调试通过的,最近由于新建了一个工具,不知道出了什么问题,出现这个异常。

    该异常不是所有的类似的语句都出现,部分比较短名称的语句就无此异常。如

    internal static string SplitByAttribute {
                    get {
                        return "llc3s@foxmail.com_Water_Info_Toolbar_SplitByAttribute";
                    }
                }

    说明:由于工具分多次写的,之后做了一个工具条将所有的插件、代码放在了一个解决方案中,解决方案中包含一个AddIN的项目,一个辅助类的项目。如图:

    简单的功能就直接在项目中建立,如ChangePolygon2Word.cs插件(该类较复杂,大部分内容在WaterInfoAssiter项目中做了封装,此处只调用即可),其他较复杂涉及较多内容的,则新建了一个文件夹,将相关的代码、窗体等放在一个统一的文件夹中。

    经过对比发现,此处出现异常的,全部是放入文件夹中的插件,这些插件之前都有正常的运行过,原因未知。

    解决方法:改名。

    (1)将Config.Designer.CS文件中较长的名称改为短的,如AttributeBrushTool,

    之前的名称Water_Info_Toolbar.AttributeBrushTool.AttributeBrushTool,

    Water_Info_Toolbar为项目名称,
    AttributeBrushTool为文件夹名称。以上较长的名称为VS根据插件存放的位置生成,新建插件名称时,只在向导中输入了AttributeBrushTool

    (2)修改具体Config.esriaddinx 文件中关于插件的配置,将class改为短名称,Water_Info_Toolbar.AttributeBrushTool.AttributeBrushTool改为AttributeBrushTool,此处应该是指向具体实现后台逻辑的类

    <Tool id="llc3s@foxmail.com_Water_Info_Toolbar_AttributeBrushTool" class="AttributeBrushTool" message="" caption="属性刷" tip="属性刷.Ctrl+左键,选择用以刷属性的源,选择之后可以在右侧的表中修改值.之后,点击希望刷属性的要素" category="Water_Info_Controls_llc" image="ImagesAttributeBrushTool.png" cursor="ImagesAttributeBrushTool.cur" />

    (3)修改AttributeBrushTool.cs文件中Water_Info_Toolbar.AttributeBrushTool的命名空间,只保留Water_Info_Toolbar。保存即可

    按照上述内容修改,异常可消除。

    插件中包含一些窗体与panel时,也按照上述步骤修改。只不过需要多修改panel.designer.cs中相关的代码。

    以上做法可以解决异常,原因未知,有知道的高手麻烦告知一下

  • 相关阅读:
    菜鸟系列Golang学习 — 协程
    菜鸟系列Golang学习 — 切片
    菜鸟系列Golang学习 — 数组
    菜鸟系列Fabric —— Fabric-CA
    菜鸟系列计算机网络——TCP和UDP协议
    菜鸟系列Fabric源码学习 — kafka共识机制
    菜鸟系列Fabric源码学习 — 背书节点和链码容器交互
    Amazon's Dynamo 论文中文版
    3、递归(动态规划思想)
    2、链表(python实现)
  • 原文地址:https://www.cnblogs.com/DayDreamEveryWhere/p/4575314.html
Copyright © 2020-2023  润新知