Я пытался заставить Moq (или, скорее, Castle.Core) создать прокси для моих внутренних типов.
Следующее (при добавлении в тестируемый проект) позволяет работать:
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
Однако это (более безопасная версия) не:
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=002400000480000094000000060200000024000052534131000400000100010077f5e87030dadccce6902c6adab7a987bd69cb5819991531f560785eacfc89b6fcddf6bb2a00743a7194e454c0273447fc6eec36474ba8e5a3823147d214298e4f9a631b1afee1a51ffeae4672d498f14b000e3d321453cdd8ac064de7e1cf4d222b7e81f54d4fd46725370d702a05b48738cc29d09228f1aa722ae1a9ca02fb")]
Примечание: открытый ключ здесь отличается от того, что задокументировано здесь . Я повторно проверил открытый ключ Castle.Core.dll, который поставляется с текущей версией Nuget Moq.
У меня все еще неправильный ключ?
[EDIT]
Я заметил, что полная загрузка Moq с официального сайта (а не Nuget) содержит папку NET40-requireCastle с меньшим dll, что подразумевает, что код Castle.Core был включен в Moq.dll по умолчанию, я полагаю.
Я смотрел на Castle.Core.dll, который они предоставляют для Silverlight, и предполагал, что они использовали одну и ту же версию повсюду?