>Yea, I think your right.
>I think I could set the property to internal but then I would have to make separate assemblies to control the visibility which isn’t something I want to do just yet.
>I think my fix will be just telling everyone not to use the oDataLayer property unless on the middle tier.
>Problem solved!
Another option is to use factory methods to return those objects and then hide the factory methods or not document them for the specific types to load. You can implement a common interface for all of these then return it as an interface reference whcih you then have to override the type on.
This stuff is messy in .Net because of strict typing. It's dirt easy in VFP because you can simply dynamically add the objects as needed and fire away. In .Net all of this requires Reflection which makes for a lot more work and you certainly wouldn't want to require your application code to deal with accessing members of your objects through Reflection <g>...