In the following sample, x.propertyX works fine, whereas y.propertyX gives me a Microsoft.CSharp.RuntimeBinder.RuntimeBinderException, com
Anonymous types are internal to the assembly they are created in. If you have control over the source code you can make them Friend Assemblies
[assembly:InternalsVisibleTo("TheOtherAssembly")]
but there are drawbacks.