继续一个类时提示"基类型...不符合CLS .这是什么原因?

koy0755 2006-02-03 11:46:09
这个基类型在其它项目里也使用过,继承也没有问题.


引用了一个单元.继承里面的一个类,但编译时提示:基类型"..."不符合CLS. 这是怎么回事?这个文件是我从其它项目里拿过来的应该没有问题.
我下载了SharpDevelop的源代码.里面的CommandBar子项目在原工程里可以编译通过.我把两个子项目拿了出来.编译时说
“AddinSystem.Core.Gui.Components.SdMenu” : 基类型“Reflector.UserInterface.CommandBarItem”不符合 CLS
再看看SharpDevelop里的代码.都没有改运过.为什么拿出来后会变成这样了?
原来码如下:
using Reflector.UserInterface;

namespace AddinSystem.Core.Gui.Components
{
public interface IStatusUpdate
{
void UpdateStatus();
}
public class SdMenu : CommandBarMenu, IStatusUpdate //出错的地方在这里.

========================================================================================

[XmlMemberArrayAttribute("shortcut",Separator=new char[]{ '|'})]//这里也出错了.提示 作为属性参数的数组不符合 CLS

string[] shortcut = null;


请问以上问题如何解决?
...全文
1017 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lidong6 2006-02-05
  • 打赏
  • 举报
回复
也以前也遇到过类似问题.
子类和基都要有CLSCompliant属性的设置,且设置要一样,一般可以设置Assemply.cs文件中.

你的问题大概是子类有设置而基类没有的问题.
dahuzizyd 2006-02-05
  • 打赏
  • 举报
回复
我想楼主的问题和这里所提到的是一类问题:
http://dahuzizyd.cnblogs.com/articles/34546.html
koy0755 2006-02-04
  • 打赏
  • 举报
回复
是出错.

这几个类,如果单独放在一个项目里,然后我的项目引用这个英目然后继承这几个类.就出现这样的提示.
如果我把这几个类的源文件拷出来放在我的项目里再继承.就可以编译通过了.好奇怪.

怎么会这样?
tiaoci 2006-02-04
  • 打赏
  • 举报
回复
为了暴露一个函数/对象,给任意其它基于.NET的语言使用,

必须要符合CLS兼容

这个 XmlMemberArrayAttribute 是不是 非CLS兼容的 ?

你可以给class标记成CLS不兼容就可以吧

[CLSCompliant(false)]
public class SdMenu
{
。。。。
}
saucer 2006-02-03
  • 打赏
  • 举报
回复
是出错还是警告?

CLS是指共同语言规范,.NET里有些东西是不能在某些语言里用的,譬如VB.NET里没有非负(unsigned)整数类型

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧