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