代码之家  ›  专栏  ›  技术社区  ›  David Schmitt

何时可以违反CLS合规性?

  •  2
  • David Schmitt  · 技术社区  · 16 年前

    Common Language Specification compliance 可以接受。即使不打算从其他语言访问,我认为 CLSCompliantAttribute 是良好的最佳实践。

    你是否遇到/知道以下情况 YAGNI 超过最佳实践?

    3 回复  |  直到 12 年前
        1
  •  5
  •   Peter Mortensen icecrime    12 年前

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

    Medium trust , ClickOnce ,从共享网络驱动器运行,域设置中的客户配置文件等。在许多安全情况下,如果违反CLS合规性,您的代码将无法运行。

    我个人见过很多情况,用户试图从共享网络驱动器运行他们的应用程序,但由于本地管理员在安全配置文件中杀死了不符合CLS的应用程序而无法运行。

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

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

        2
  •  4
  •   Marc Gravell    16 年前

    好吧,属性上的“params”数组有时很诱人(但不兼容)。但我建议尽可能使用符合CLS的方法。

        3
  •  3
  •   Peter Mortensen icecrime    12 年前

    但是这些不一致的接口应该在更高的层次上重新封装。

    推荐文章