robertj at gmx.net
Fri Apr 5 14:14:53 UTC 2013
On 04.04.2013 20:57, Neale Ferguson wrote:
> I¹m looking at fixing an incompatibility between .NET and Mono when it
> comes to Serialization. Bugzilla 11294 describes the situation but in brief
> it is a case that when .NET serializes something that has a
> TypeForwardedFrom attribute that information gets put into the serialized
> object, but mono does not. It appears that all mono does when it encounters
> that attribute it simply stores it away and nothing uses it. To emulate the
> .NET behavior that information needs to be accessible in metadata about the
> type and that information uses by the Serializers.
> I¹m trying to work out how the information captured by
> TypeForwardedFromAttribute.cs can be made available at runtime to the
> serializer. My knowledge of how mcs operates and what the contents of
> metadata are and how to access them is my roadblock. So any reading/code
> that I can be directed to would be a great help.
You don't need to know how mcs operates. The TypeForwardedFrom
information can be obtained via reflection:
public static class TypeExtensions
// Returns the assembly name of a type while considering
public static string GetAssemblyName (this Type self)
var attrs = self.GetCustomAttributes(typeof
if (attrs.Length == 0)
return ((TypeForwardedFromAttribute)attrs ).AssemblyFullName;
I've attached a full sample which proves that MS.NET is simply
emitting TypeForwardedFromAttribute.AssemblyFullName for the
assembly name during serialization.
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 1340 bytes
Desc: not available
More information about the Mono-devel-list