Могу ли я сделать внутренние компоненты видимыми для всех сборок, подписанных одним и тем же ключом?

У меня есть сборка с функциональностью, которую я не хочу показывать как общедоступную, но которая по-прежнему доступна для других моих сборок. Это можно сделать с помощью InternalsVisibleToAttribute, указав каждую сборку, для которой будут видны его внутренние компоненты.

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

Существует ли эта функциональность, и если да, может ли кто-нибудь указать мне правильное направление?

3 ответа

Решение

Нет, я не верю, что что-то подобное доступно автоматически.

Вы можете написать свой собственный инструмент для генерации [InternalsVisibleTo(...)] и добавьте модульные тесты, чтобы все эти ссылки имели одинаковый ключ.

Я не знаю ничего, что навязывает это вам и автоматически генерирует InternalsVisibleTo, но вы могли бы написать расширение Visual Studio, которое делает это.

Я надеюсь, что утилита, которую я создал несколько лет назад, может немного облегчить вашу жизнь, добавив InternalsVisibleTo в ваш файл AssemblyInfo.cs.

Вот ссылка: http://vkreynin.wordpress.com/2007/12/09/testing-internals-members-with-internalsvisibleto-attribute/

Другие вопросы по тегам