Добавление атрибута CLSCompliant на уровне сборки не меняет классов в любом случае, поэтому не делает классами, совместимыми с CLS. То, что он делает, - заставить компилятор поднять что-либо, что не соответствует как ошибка. Вы по-прежнему несете ответственность за то, чтобы убедиться, что классы не нарушают правила.
Это говорит о том, что да, он фильтрует и затрагивает все классы в сборке без необходимости добавлять его снова к каждому классу. From here:
Если атрибутов ЦБС не применяется к типа, предполагается, что тип, чтобы иметь такую же CLS соответствия как сборки в , который определен тип.
This article также является довольно приятным обзором того, как он работает, что вам нужно делать, и почему вы можете это сделать.
Спасибо, это то, на что я надеялся. Они являются «только» внутренними инструментами, которые я создаю, но они будут использоваться в разных местах (в основном мной), поэтому я подумал, что имеет смысл сделать их как можно более многоразовыми. – Cylindric