2009-11-20 4 views

ответ

7

Добавление атрибута CLSCompliant на уровне сборки не меняет классов в любом случае, поэтому не делает классами, совместимыми с CLS. То, что он делает, - заставить компилятор поднять что-либо, что не соответствует как ошибка. Вы по-прежнему несете ответственность за то, чтобы убедиться, что классы не нарушают правила.

Это говорит о том, что да, он фильтрует и затрагивает все классы в сборке без необходимости добавлять его снова к каждому классу. From here:

Если атрибутов ЦБС не применяется к типа, предполагается, что тип, чтобы иметь такую ​​же CLS соответствия как сборки в , который определен тип.

This article также является довольно приятным обзором того, как он работает, что вам нужно делать, и почему вы можете это сделать.

+0

Спасибо, это то, на что я надеялся. Они являются «только» внутренними инструментами, которые я создаю, но они будут использоваться в разных местах (в основном мной), поэтому я подумал, что имеет смысл сделать их как можно более многоразовыми. – Cylindric

1

Что я знаю о CLSCompliant, по умолчанию ваша сборка не соответствует требованиям. На мой взгляд, не все проекты должны быть CLSCompliant. Проекты, которые являются инструментами или библиотеками, которые будут использоваться другими приложениями, должны быть CLSCompliant. При создании Visual Studion Tools для Windows Live мы должны были убедиться, что наш код не дал никаких CLSCompliant ошибок или предупреждений.

 Смежные вопросы

  • Нет связанных вопросов^_^