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

Dav*_*itt 2 .net cls-compliant

我想知道哪些边缘情况可以使公共语言规范符合性.即使不打算从其他语言访问,我认为这些原则CLSCompliantAttribute是良好的最佳实践.

您是否遇到过YAGNI超过最佳实践的案例?

Jas*_*ort 5

"[原文如此]符合CLS有什么用?"

中等信任,ClickOnce,从共享网络驱动器运行,域设置中的访客配置文件等.如果您违反CLS合规性,则会出现许多安全情况,导致代码无法运行.

我个人已经看到很多情况,用户试图从共享网络驱动器运行他们的应用程序而不能,因为本地管理员已经在安全配置文件中杀死了非CLS兼容的应用程序.

一般来说,通常有办法解决这个问题.我会采取与上述评论相反的方法,为什么要打破它?您正在编写托管代码,为什么要故意限制您的应用程序?

我会说,如果你正在构建一个API程序集或组件,你应该始终遵守它们.太多的第三方组件采用简单的方法,只是在尝试从中等信任运行时将它们标记为已损坏.在某些情况下,这是他们无法运行的唯一原因.如果他们花了更多的时间来遵守指南,用户就不会限制他们如何使用他们的组件.