cls-compliant相关内容

CLSCompliant(true) 拖入未使用的引用

谁能解释以下行为? 总而言之,如果您在 Visual Studio 2008 中创建多个CLS 兼容库并让它们共享一个公共命名空间根,则引用另一个库的库将要求引用该库库的引用,即使它不使用它们. 用一句话来解释非常困难,但这里有重现行为的步骤(密切注意命名空间): 创建一个名为 LibraryA 的库并向该库添加一个类: 命名空间 Ploeh{公共抽象类 Class1InLib ..
发布时间:2022-01-05 12:13:11 C#/.NET

为什么我的课程不符合 CLS?

这真的让我感到困惑.我试过删除只读,更改名称..我在这里做错了什么? 公共抽象类 CatalogBase;其中 T : 班级{受保护的只读字符串数据路径;受保护的只读 XmlSerializer Serializer;私有只读 XmlSerializerNamespaces _namespaces;受保护的目录库(字符串数据路径){数据路径 = 数据路径;Serializer = new Xml ..
发布时间:2021-11-24 09:41:07 C#/.NET

.NET 中 API 突破性更改的权威指南

我想收集尽可能多的关于 .NET/CLR 中 API 版本控制的信息,特别是 API 更改如何破坏或不破坏客户端应用程序.首先,让我们定义一些术语: API 更改 - 类型的公开可见定义的更改,包括其任何公共成员.这包括更改类型和成员名称、更改类型的基类型、从类型的已实现接口列表中添加/删除接口、添加/删除成员(包括重载)、更改成员可见性、重命名方法和类型参数、添加默认值对于方法参数,添加/ ..
发布时间:2021-11-15 00:15:05 C#/.NET

什么时候可以打破CLS合规性?

我想知道存在哪些可能使 CLSCompliantAttribute 是很好的最佳实践. 您是否遇到过/知道 YAGNI 胜过最佳做法的情况? 解决方案 "[原文]符合CLS有什么用?" 中级信任, ..
发布时间:2021-04-01 21:10:08 C#/.NET

是C#4.0的新功能-“可选参数"符合CLS?

此新功能非常方便. 最近,我阅读了"Microsoft多合一代码框架"的文档,其中提到“可选参数"不符合CLS. 因此,我通过使用公共API中的“可选参数"对其进行了测试,并打开了FxCop,然后我进行了编译,并且FxCop没有任何抱怨.同时,当我添加以uint作为返回类型的API时,FxCop确实报告了警告. 所以现在我很困惑,“可选参数"是否符合CLS? 找出新语言功能 ..
发布时间:2020-05-21 22:03:37 C#/.NET

包含非CLS兼容引用的程序集是否符合CLS?

我有一个现有的DLL不符合CLS,我从我自己的项目引用。当我将我的程序集标记为CLS兼容时,我得到编译器警告,引用程序集中的名称不符合CLS。 有一种方法可以保留我的程序集CLS兼容,并标记引用的不是? 解决方案 是的,你的DLL可以符合CLS,不会从引用的程序集中暴露任何非CLS兼容成员 - 也就是说,它不会在任何自己的公共或受保护成员或类型中提及它们。 (它仍然可以在私有和内部成 ..
发布时间:2016-10-11 11:23:16 C#/.NET

为什么重载方法在文献只有符合CLS不同

公共语言规范是在方法重载相当严格。 被允许 方法的基础上的数量和类型也可以只载其参数和泛型方法,它们的泛型参数的数量。 为什么这个代码符合CLS(无CS3006警告的情况下?)根据CSC 使用系统; [大会:CLSCompliant(真)] 公共类的测试{ 公共静态无效期待< T>(T ARG) { } 公共静态无效期待< T> ..
发布时间:2016-09-29 13:21:10 C#/.NET

为什么我的课不符合CLS?

这我百思不得其解。我试着去掉只读,更改名称..我在做什么错在这里。 公共抽象类CatalogBase< T>其中T:类 { 保护的只读数据路径的字符串; 保护只读XmlSerializer的序列化; 私人只读XmlSerializerNamespaces _namespaces; 保护CatalogBase(字符串数据路径) { 数据路径=数据通路; 串行=新的X ..
发布时间:2016-09-20 22:15:10 C#/.NET

基本类型是不符合CLS,这是什么警告的原因是什么?

我已得到警告主题在我的课之一。其实类是非常简单的,只是我的通用基类型的继承者。我也有来自全国各地的解决方案,通用类其它继承人,有没有这样的警告。 什么可能是这个原因(S)? 编译器不给出任何线索,为什么基本类型不符合CLS- 解决方案 您可能有 [大会:CLSCompliant(真)] 地方在具体项目。这会触发编译器检查所​​有类型是符合CLS。你可以用 [CLSCompliant ..
发布时间:2016-09-19 12:41:29 C#/.NET

我为什么要编写符合CLS的代码?

我发现了很多关于CLS遵从页 我了解,CLS遵从性: 是保证不同的装配兼容的方式。 正在申报的高安全性密码的方式 许多peolple写道:“如果你写的代码,你应该把它写符合CLS。“ ,而据我可以阅读,没有理由要使用通用软件CLS遵从性。 我说得对,还是我错过了什么? 解决方案 如果你写一个库或框架,这是有道理的,以确保您的图书馆可以从任何CLR语言被使用。 ..
发布时间:2016-09-07 13:31:36 C#/.NET

CLS兼容的属性和数组参数

我已经创建了接受它的构造函数(PARAMS)阵列的属性。 内部类MyTestAttribute:属性 { 公共MyTestAttribute(PARAMS选项[]选项) { .... } } 选项这里是一个枚举(有很多值),所以示例调用网站将 [MyTest的(Option.One,Option.Three) 内部空隙的someMethod(INT参 ..
发布时间:2016-07-21 22:36:06 C#/.NET

C#:非零基于阵列是不符合CLS

我目前正在读的阿尔巴哈利的的 C#3.0中果壳和皮克。 241,而谈论的数组索引,他这样说: 非零基于阵列不 CLS(通用语言规范)标准 这是什么意思完全相同,为非零阵列不是符合CLS ?而且它有什么影响你的code? [更新] ..
发布时间:2016-05-31 19:22:10 C#/.NET

模式命名CLS兼容替代属性

如果我有这样的属性。 [CLSCompliant(假)] 公共UINT东西{...} 和想写一个选择,我不能只写过载,我会做的方法。 但是我应该如何命名?有没有在.NET库的一些通用的方式? 众长SomethingAlternative {...} 解决方案 我会建议 SomethingAsInt64 明确表示行为的差异。 ..
发布时间:2015-11-27 11:42:58 C#/.NET

警告CS3006在这种情况下,有效吗?

在code以下产生一个警告CS3006“重载方法MyNamespace.Sample.MyMethod(INT [])'只是在不同的文献或缩小,或在阵列级别,是不符合CLS。” 这是警告无效,即是这种真正的不符合CLS?我还以为显式接口实现将不算为过载。 [总成:CLSCompliant(真) 命名空间了myNameSpace { 公共类样品:ISample { ..
发布时间:2015-11-27 10:58:57 C#/.NET

是否有检查CLS遵从性的工具?

有没有一种可以分析我的.NET code(C#和 VB.NET工具),并告诉我的为什么的东西是不符合CLS? Visual Studio是高兴地告诉我一个参数不符合CLS,但它不会让我更接近解决了这个问题,因为我不知道原因。 例如Visual Studio的错误: 参数'某某'是不符合CLS 解决方案 我不能说我知道的一个工具,我倾向于使用MSDN页面的的语言独立性和语言无关的组件 ..
发布时间:2015-11-27 10:16:29 C#/.NET

CIL,CLS,而CTS在.NET

什么是 CIL ,的 CTS 和 CLS 在.NET和它们之间有什么区别呢? 解决方案 CIL(通用中间语言)是字节code,您的C#或Visual Basic code编译为。这是.NET执行引擎的“机器code”。 的CTS(通用类型系统)是类型(类和结构)在编译级的重新presentation。基本上,它是说所有.NET语言将使用重presenting种(类和结构)的常用方法。 在C ..
发布时间:2015-11-26 18:17:45 C#/.NET

“数组作为属性参数是不符合CLS”的警告,但没有给出任何类型的信息

在编译我的解决方案,我得到以下几个警告: 警告CS3016:数组作为属性参数是不符合CLS 这是什么类型的不符合被赋予任何其他信息。在我的项目,我有一些属性需要参数数组论点,它们的构造,但它们都是内部的,而且不应该影响CLS遵守。为什么报错此警告,什么类型就报错了? 解决方案 CS3016 。 如果你有一个属性,它接受一个数组作为参数,该项目被标记为 CLSCompliant ..
发布时间:2015-11-25 15:02:11 C#/.NET

什么是.NET中的“CLSCompliant”属性?

什么是解决方案 当你想确保它可以用于任何其他.NET语言您标记类与CLSCompliant属性。 这些是基本的规则: 无符号的类型不应该是类的公共接口的一部分。这意味着公共领域不应该有符号类型,如UINT或ulong,则公共方法不应该返回无符号类型,传递给公众函数的参数不应该无符号类型。然而无符号类型可以是私有成员的一部分。 不安全类型,如指针不应该用公共的成员。然而,它们可以用于私有成 ..
发布时间:2015-11-24 20:36:28 C#/.NET

CLSCompliant(真)拖入未使用的引用

任何人都可以的解释的以下行为? 总之,如果你创建多个的符合CLS 的在Visual Studio 2008,并让他们都有一个共同的名字空间的根库,出库引用另一个库将的需要的引用了图书馆的引用,即使它没有使用它们。 这是pretty的难以用一句话来解释,但这里有步骤来重现行为(要密切注意的命名空间): 创建一个名为LibraryA的库并添加AA单级到库: 命名空间Ploeh { 公共 ..
发布时间:2015-11-24 16:11:01 C#/.NET

为什么这个名字用下划线不符合CLS?

为什么我得到的编译器警告 标识符“Logic.DomainObjectBase._isNew'是不符合CLS 以下code? 公共抽象类DomainObjectBase { 保护布尔_isNew; } 解决方案 从公共语言规范: 符合CLS的语言编译器必须遵循统一$ C $的技术报告15 C标准3.0,它支配的字符集,可启动并包含在标识符中的附件7的规则。该标 ..
发布时间:2015-11-24 14:39:06 C#/.NET