我一直试图让Moq(或者更确切地说是Castle.Core)为我的内部类型创建代理.
以下(当添加到我正在测试的项目中时)允许一些工作:
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
Run Code Online (Sandbox Code Playgroud)
但是这个(更安全的版本)不会:
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=002400000480000094000000060200000024000052534131000400000100010077f5e87030dadccce6902c6adab7a987bd69cb5819991531f560785eacfc89b6fcddf6bb2a00743a7194e454c0273447fc6eec36474ba8e5a3823147d214298e4f9a631b1afee1a51ffeae4672d498f14b000e3d321453cdd8ac064de7e1cf4d222b7e81f54d4fd46725370d702a05b48738cc29d09228f1aa722ae1a9ca02fb")]
Run Code Online (Sandbox Code Playgroud)
注意:此处的公钥与此处记录的公钥不同,我重新检查了当前Nuget版本的Moq附带的Castle.Core.dll的公钥.
我还有错钥匙吗?
[编辑]
我注意到官方网站(而不是Nuget)的完整Moq下载包含一个带有较小dll的NET40-RequiresCastle文件夹,这意味着Castle.Core代码已包含在默认的Moq.dll中.
我正在查看他们为Silverlight提供的Castle.Core.dll,并假设他们已经使用了相同的版本?