У меня есть 3 проекта в моем решении С#.
- Подписи
- Структуры
- Испытания
Подписи имеют общедоступные и внутренние интерфейсы. Также он имеет
[assembly: InternalsVisibleTo("Structures")]
[assembly: InternalsVisibleTo("Tests")]
в AssemblyInfo.cs.
Структуры имеют общедоступные и внутренние классы и
[assembly: InternalsVisibleTo("Tests")]
в AssemblyInfo.cs.
Тесты имеют следующий источник:
<packages>
<package id="Moq" version="4.2.1409.1722" targetFramework="net45" />
<package id="NUnit" version="2.6.4" targetFramework="net45" />
<package id="NUnitTestAdapter" version="1.2" targetFramework="net45" />
</packages>
как пакеты NuGet в пакетах .config.
Я написал несколько unit test для внутреннего интерфейса из Signatures и внутреннего класса из Structures. Запуск и следующий результат: исключение:
Тип Signatures.InterfaceX не отображается для DynamicProxy. Невозможно создать прокси-сервер для не доступных типов. Сделайте тип общедоступным или внутренним и отметьте свою сборку атрибутом [assembly: InternalsVisibleTo (InternalsVisible.ToDynamicProxyGenAssembly2)].
Кажется логичным. я добавил [сборка: InternalsVisibleTo ( "InternalsVisible.DynamicProxyGenAssembly2" )] для сборки информации о проектах подписи и структуры. Запуск и следующий результат: исключение:
Тип 'Castle.Proxies.IReminiscenceableDataTableProxy' из сборки 'DynamicProxyGenAssembly2, Version = 0.0.0.0, Culture = neutral, PublicKeyToken = null' пытается реализовать недоступный интерфейс.
Это должно было помочь, но не помогло. Измените только сообщение об исключении.
Как исправить мою проблему?