From Rockford Lhotka's Expert C# 2008 and VB 2008 Business Objects books
ajj3085:Hi,I hit this problem too. It has to do with the multiple levels of inheritence. Search this forum for _dummy or dummy to find the solution, or check out the C# 2008 Business Objects book, page 248, RegisterProperty and Inheritance.
Did you add the _dummy code in every single level of your inheritance chain? You have to do that.
Joe
It should be fixed in current versions - there's even a unit test that confirms the fix.
The fix was to use reflection to walk the inheritance hierarchy, accessing a static field in each class, thus triggering the static field initialization in each class.
The method is called ForceStaticFieldInit() in the FieldDataManager class. You could put a breakpoint in that method to make sure it is being hit on the first use of each type - on the client and on the server.
Rocky
Oh, one other thing.
If you are using Silverlight the rules are a little different because private reflection isn't possible. So the fix is in CSLA .NET for Silverlight, but it can only work if your PropertyInfo<T> fields are public in scope, not private. If they aren't public, then the reflection code can't see the fields and thus can't trigger the field initialization.