修饰符“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="Images\AttributeBrushTool.png" cursor="Images\AttributeBrushTool.cur" />

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

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

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

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

ArcGIS AddIN开发异常之--修饰符“static”对该项无效的更多相关文章

  1. ArcGIS AddIN开发异常之--“ValidateAddInXMLTask”任务意外失败

     ArcGIS AddIN开发时,产生如下异常错误 2 “ValidateAddInXMLTask”任务意外失败.System.NullReferenceException: 未将对象引用设置到对象的 ...

  2. 访问修饰符与可选修饰符static的使用

    在Java中修饰符较多,在这里简单说一说几个访问修饰符的选择使用,和可选修饰符static的使用. 一.访问修饰符:这是Java里用来控制访问类及类的方法.变量的访问权限,从而达到只暴露接口,来隐藏内 ...

  3. 【语法】修饰符 static extern const

    转载自:http://my.oschina.net/u/2560887/blog/552683 一.C语言中的static的作用 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有 ...

  4. JAVA中静态修饰符static的学习(初学)

    静态修饰符static,用于修饰类中的成员变量和成员函数. 用static修饰的成员变量也可叫做类变量. 什么时候使用静态 什么时候定义静态成员变量?     当对象中出现共享数据时,将该数据定义为静 ...

  5. 修饰符-static

    一.static静态修饰符 static修饰符能够修饰属性,方法,初始代码块,不能修饰局部变量和类. 静态的变量叫常量,非静态的变量叫实例变量. 1.修饰属性 package gc.test.java ...

  6. 修饰符static和abstract

    修饰符static和abstract static static可以修饰类中的方法,属性等,被修饰后的方法和属性可以通过类名直接调用也可以通过对象调用.普通的变量只能通过对象进行调用. 静态方法直接可 ...

  7. ArcGIS AddIn开发笔记(一)

    学习AddIn开发,遇到了些稀奇古怪的问题,网上的资料少之又少. (1)AddIn开发,主要是通过ArcMap静态变量,与主程序中的数据等进行交互 (2)failed to register Add ...

  8. java静态修饰符static的使用

    class Person { private String name; private int age; /* * 假设每个Person对象的国籍都一样, * 那么每次调用都要赋值就会不合理. * 使 ...

  9. Arcgis Add-In开发入门实例

    作为一个本科侧重于应用,工作之后却做了开发的程序员来说,做GIS,开发应该是一门必修课,只是,苦于各种原因吧,做GIS应用的人会开发的很少,做GIS开发的大部分都是计算机出身,痛心疾首啊-- 不好意思 ...

随机推荐

  1. HDU 4496 D-City (并查集)

    题意:有n个城市,m条路,首先m条路都连上,接着输出m行,第i行代表删除前i行的得到的连通块个数 题解:正难则反,我们反向考虑使用并查集添边.首先每个点都没有相连,接着倒着来边添加边计算,当两个点父节 ...

  2. 在CSDN中添加友情连接

    <a bref='http://www......'>友情连接</a><br/> <a bref='http://www......'>友情连接2< ...

  3. DSP using MATlAB 示例Example2.10

    上代码 % noise sequence 1 x = [3, 11, 7, 0, -1, 4, 2]; nx = [-3:3]; % given signal x(n) [y,ny] = sigshi ...

  4. 20145223《Java程序设计》第5周学习总结

    20145223 <Java程序设计>第5周学习总结 教材学习内容总结 ·由于在编程的时候会遇到因各种原因而导致的错误,于是我们可以使用"try"."catc ...

  5. 自定义鼠标光标,制作cur,设置热点,中心点。

    ..没哈好说的,,只是推荐一个软件 ArtCursor..非常好用. 关于另外一个更改光标的重要问题:鼠标的hotspot,也就是鼠标的作用点问题,本人关于这个问题纠结了很久,始终无法找到更改HCUR ...

  6. HDU-2159FATE(二维完全背包)

    FATE Problem Description 最 近xhd正在玩一款叫做FATE的游戏,为了得到极品装备,xhd在不停的杀怪做任务.久而久之xhd开始对杀怪产生的厌恶感,但又不得不通过杀怪来升完 ...

  7. iOS学习01C语言数据类型

    1.注释 // 单行注释 // 注释对代码起到解释说明的作用,注释是给程序员看的,不参与程序运行 /*  多行注释  Xcode快捷键  全选 cmd+a  复制 cmd+c  粘贴 cmd+v  设 ...

  8. BZOJ2158 : Crash 的旅行计划

    A类数据: $n,q\leq1000$ 修改:$O(1)$直接改 查询:$O(n)$BFS B类数据: $n,q\leq100000$,保证是一条链 用线段树维护区间最大前缀.后缀和 修改:$O(\l ...

  9. eclipse 高亮配对的括号

    在编辑代码框右键->preference,直接就可以看到Matching brackets highlights

  10. Unity5.x版本AssetBundle打包研究

    Unity5的AssetBundle打包机制和以前版本不太一样.简单的说就是,只要给你要打包的资源设置一个AssetBundleName ,Unity自身会对这些设置了名字的资源进行打包,如果一个资源 ...