Могу ли я сделать внутренние компоненты видимыми для всех сборок, подписанных одним и тем же ключом?
У меня есть сборка с функциональностью, которую я не хочу показывать как общедоступную, но которая по-прежнему доступна для других моих сборок. Это можно сделать с помощью InternalsVisibleToAttribute, указав каждую сборку, для которой будут видны его внутренние компоненты.
Мне было интересно, есть ли способ, которым мне не нужно было указывать все ссылочные сборки, а вместо этого просто применять правило, что сборка должна быть подписана тем же snk, чтобы внутренние компоненты были видны.
Существует ли эта функциональность, и если да, может ли кто-нибудь указать мне правильное направление?
3 ответа
Нет, я не верю, что что-то подобное доступно автоматически.
Вы можете написать свой собственный инструмент для генерации [InternalsVisibleTo(...)]
и добавьте модульные тесты, чтобы все эти ссылки имели одинаковый ключ.
Я не знаю ничего, что навязывает это вам и автоматически генерирует InternalsVisibleTo, но вы могли бы написать расширение Visual Studio, которое делает это.
Я надеюсь, что утилита, которую я создал несколько лет назад, может немного облегчить вашу жизнь, добавив InternalsVisibleTo в ваш файл AssemblyInfo.cs.
Вот ссылка: http://vkreynin.wordpress.com/2007/12/09/testing-internals-members-with-internalsvisibleto-attribute/