[导入]出现 Argument type '******' is not CLS-compliant 的一种超简单情况

今天下午,自己写的几个组件互相调用的时候,发生了很多类似如下的警告:
Argument type 'CSDN.User.Common.UserInfoChangedEventArgs' is not CLS-compliant  

最初把问题想复杂了,来回在我写的几个组件中,一点点检查每行代码是不是符合“公共语言规范”。结果一直没找到问题所在。

下班后,准备开溜的时候,才突然发现不是自己的代码写的不规范,而是下面情况:

A 项目 引用 B 项目
如果 A 项目 定义了  [assembly: CLSCompliant(true)] 也就是符合“公共语言规范”
而 B 项目没有定义符合“公共语言规范”。
则就会报那个错误。我今天的错误,就是这个所致。

B 项目也定义必须符合“公共语言规范”,就没问题了。郁闷的是,我竟然在这个最简单的地方错误了。费了一下午查错误,都走了弯路。

看来很早以前听说的那个故事很有道理的。
一个专家来处理一个很久搞不定的问题,结果专家只拧了一个螺丝,就一切搞定了。
问题方看到这个情况,不想给专家那么多劳务费。
专家说,拧螺丝免费,我收的费是是找到问题所在。
在膨大的项目中,找导致错误的地方,太容易走弯路了。

附:
公共语言规范:
http://msdn2.microsoft.com/zh-cn/library/12a7a7h3.aspx

71517.aspx
文章来源: http://blog.joycode.com/ghj/archive/2006/02/15/71517.aspx

转载于:https://www.cnblogs.com/gkit/archive/2006/02/24/336799.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值