The fix that I supplied was so that dbmetal can use a marked up copy of the DBML file that it produces as input to itself to generate C# code, not for any the of serialization.
On Feb 12, 1:53 pm, Jonathan Pryor <[email protected]> wrote: > On Fri, 2010-02-12 at 10:53 -0800, Chip wrote: > > The DbMetal.Schema.DbmlRename method needs to be public to be able to > > read in a serialized DBML renaming file. > > > The code at line 38 of DbmlRenameLoader.cs attemps to create a new > > XmlSerializer of type DbmlRename. This always is failing in > > VisualStudio with an exception because DbmlRename is private. > > > Changing DbmlRename to public. The Code for the TableAlias class > > places a !MONO_STRICT preprocessor check before it;s declaration. > > > #if !MONO_STRICT > > public > > #endif > > Sadly, that's only a temporary fix. > > The real problem is that XML Serialization is evil and to be avoided. > > XML Serialization requires that members be public; if members aren't > public, you can't deserialize, e.g. under Mono: > > http://code.google.com/p/dblinq2007/issues/detail?id=193 > > and the members can't be public under Mono (as we don't want to expose > types+members under Mono that aren't exposed under .NET's > System.Data.Linq.dll assembly). > > Which is "lots" of fun for Mono's sqlmetal users (all 1 of them). > > The fix is to rip out XML Serialization and use e.g. XLinq instead. > > - Jon -- You received this message because you are subscribed to the Google Groups "DbLinq" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/dblinq?hl=en.
