X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2Fcorlib%2FSystem.Runtime.Serialization.Formatters.Binary%2FBinaryCommon.cs;h=19be6da75e22265afb67e33de199ef4d85f55a49;hb=9e3370d3351358044231dd1f3df5fff3720bdcc2;hp=53f96a06eff807ac3edb4cfd664195a82c6cdf08;hpb=dd866d68820e0f66046256bb5d3f84e3988a8be0;p=mono.git diff --git a/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/BinaryCommon.cs b/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/BinaryCommon.cs index 53f96a06eff..19be6da75e2 100644 --- a/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/BinaryCommon.cs +++ b/mcs/class/corlib/System.Runtime.Serialization.Formatters.Binary/BinaryCommon.cs @@ -107,6 +107,17 @@ namespace System.Runtime.Serialization.Formatters.Binary { return _typeCodesToType [code]; } + + public static void CheckSerializable (Type type, ISurrogateSelector selector, StreamingContext context) + { + if (!type.IsSerializable && !type.IsInterface) + { + if (selector != null && selector.GetSurrogate (type, context, out selector) != null) + return; + + throw new SerializationException ("Type " + type + " is not marked as Serializable."); + } + } } internal enum BinaryElement : byte