понедельник, 17 декабря 2018 г.

атрибут InternalsVisibleTo

наткнулся на такой полезный атрибутик:

[assembly: InternalsVisibleTo("TestConsole")]

это - некий отдаленный аналог объявления дружественного класса в C++.
для сборки, чье имя передано в качестве параметра, все internal-объявления выглядят как публичные.
Это полезно при юнит-тестировании для тестирования protected-методов: объявляем метод "protected internal", вписываем атрибут с именем тестовой сборки в AssemblyInfo.cs тестируемой - и - ву а ля - в тестовой сборке наш метод выглядит как публичный.

P.S. в качестве имени сборки нужно указывать содержимое свойства сборки "Assembly Name"