c# - 包含不符合 CLS 的引用的程序集是否符合 CLS?

标签 c# c#-4.0 cls-compliant

我从自己的项目中引用了一个不符合 CLS 的现有 DLL。当我将我的程序集标记为符合 CLS 时,我收到编译器警告,指出引用的程序集中的名称不符合 CLS。

有没有一种方法可以使我的程序集符合 CLS,并将引用的程序标记为不符合 CLS?

最佳答案

是的,您的 DLL 可以是符合 CLS 的,只要它不从引用的程序集中公开任何不符合 CLS 的成员——也就是说,它没有在它自己的任何公共(public)或 protected 成员或类型。 (它仍然可以在私有(private)和内部成员和类型中使用它们。)

如果您的 DLL 确实需要直接从不兼容的 DLL 公开类型,您可以尝试将这些类型封装在您自己的包装器中(例如,方法可能返回 MyWrapperAroundNaughtyType 而不是 NaughtyType),或者您可以将 API 的相关成员标记为 CLSCompliant(false),以便仅选择那些成员退出编译器检查。

关于c# - 包含不符合 CLS 的引用的程序集是否符合 CLS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4975589/

相关文章:

c# 在运行时存储大量数据的最佳方式

c# - 在 Asp.net C# 中使用文件上传将数据从 .csv 导入 SQL Server

c# - 为什么我的代码不符合 CLS?

c# - 为 .NET 程序集设置 CLS 合规性

c# - 如何正确绑定(bind)到数据模板中的 Itemsource

c# - 如何将 byte[] 转换为 BitArray,然后从 BitArray 中选取特定位

c# - 控制台.ReadLine ("Default Text Editable Text On Line")

c# - 无法更新 JToken 值

asp.net - Html 到 pdf 转换器

.net - .NET 中的 'CLSCompliant' 属性是什么?