That does look interesting, and seems pretty workable if you are using code generation. Otherwise it is a lot of code to write by hand, and the odds of making a mistake are very high.
This is basically the scheme I used in the old VB6 version of CSLA, and it worked just fine - but I was sure happy to move to .NET so it wasn't necessary to write the methods to get/set the state of your object . While this sounds very helpful, it feels like a serious step back in time...
Again, if you are using code-gen then who cares really - because the template just contains the definition and you don't have to write the code.
Copyright (c) Marimer LLC