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.

Reply via email to