private void GetSerializationInfo(SerializationInfo info, string name, Type reflectedClass, string signature, MemberTypes type, Type[] genericArguments) { if (info == null) { throw new ArgumentNullException("info"); } AssemblyName asmname = reflectedClass.Assembly.GetName(); asmname.Version = new Version(_version, 0, 0, 0); string fullName = asmname.ToString(); string str2 = reflectedClass.FullName; Type t = typeof(int).Assembly.GetType("System.Reflection.MemberInfoSerializationHolder"); info.SetType(t); for (int i = 0; i < genericArguments.Length; ++i) { genericArguments[i] = new FakeType(genericArguments[i], _version); } // This is here to prevent a de-serialization bug if (genericArguments.Length > 0) { info.AddValue("DUMMY", genericArguments[0]); } info.AddValue("GenericArguments", genericArguments, typeof(Type[])); info.AddValue("Name", name, typeof(string)); info.AddValue("AssemblyName", fullName, typeof(string)); info.AddValue("ClassName", str2, typeof(string)); info.AddValue("Signature", signature, typeof(string)); info.AddValue("MemberType", (int)type); }