moq internal interface in Silverlight 4. "Can not create proxy for types that are not accessible."

1.5k Views Asked by At

I try to mock an internal interface in Silverlight 4, using moq-silverlight 4.0.10827.0.

I get an error "Can not create proxy for types that are not accessible." in a Castle.DynamicProxy.Generators.GeneratorException.

I have [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] in the assemblyInfo of the tested assembly. I do not have any signed assemblies.

2

There are 2 best solutions below

0
On

The InternalsVisibleTo switch works only in this scenario: You have to apply it in the assembly containing the internals you want to be visible to another assembly. If it would work when you specify it in an assembly who wants to consume those internals, then it would be a great security leak!

0
On

Try including the public key as well:

[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] 

And make sure you also make the internals visible to the unit test assembly (assuming they're in a different assembly).