我尝试使用 moq-silverlight 4.0.10827.0 在 Silverlight 4 中模拟内部接口。
我收到错误“无法为不可访问的类型创建代理”。在 Castle.DynamicProxy.Generators.GeneratorException 中。
我在测试程序集的 assemblyInfo 中有 [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]。我没有任何签名的程序集。
我尝试使用 moq-silverlight 4.0.10827.0 在 Silverlight 4 中模拟内部接口。
我收到错误“无法为不可访问的类型创建代理”。在 Castle.DynamicProxy.Generators.GeneratorException 中。
我在测试程序集的 assemblyInfo 中有 [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]。我没有任何签名的程序集。
尝试包括公钥:
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
并确保您还使单元测试程序集可见内部(假设它们在不同的程序集中)。
该InternalsVisibleTo
开关仅在这种情况下有效:您必须在包含您希望对另一个程序集可见的内部组件的程序集中应用它。如果当您在想要使用这些内部组件的程序集中指定它时它会起作用,那么这将是一个巨大的安全漏洞!