public static void Write(BinaryWriter writer, INameEncoder nameTable, ITypeParameter typeParameter) { WriteString(typeParameter.Name, writer, nameTable); // Flags writer.Write((byte)typeParameter.TypeParameterModifier); // Variance writer.Write((byte)typeParameter.Variance); // Constraints writer.Write(typeParameter.Constraints.Count()); foreach (IReturnType rt in typeParameter.Constraints) { Write(writer, nameTable, rt); } // Attributes writer.Write(typeParameter.Attributes.Count()); foreach (IAttribute attr in typeParameter.Attributes) { Write(writer, nameTable, attr); } }
public static void WriteTo(IParameter p, BinaryWriter writer, INameEncoder nameTable) { PersistentHelper.WriteString (p.Name, writer, nameTable); PersistentHelper.WriteString (p.Documentation, writer, nameTable); writer.Write((byte)p.Modifier); PersistentReturnType.WriteTo (p.ReturnType, writer, nameTable); }
public static void Write(BinaryWriter writer, INameEncoder nameTable, IMethod method) { Debug.Assert(method != null); WriteMemberInformation(writer, nameTable, method); writer.Write(method.ExplicitInterfaces.Count()); foreach (IReturnType returnType in method.ExplicitInterfaces) { Write(writer, nameTable, returnType); } Write(writer, nameTable, method.BodyRegion); Write(writer, nameTable, method.ReturnType); writer.Write((int)method.MethodModifier); if (method.Parameters == null) { writer.Write(0); } else { writer.Write(method.Parameters.Count); foreach (IParameter param in method.Parameters) { Write(writer, nameTable, param); } } writer.Write(method.TypeParameters.Count); foreach (ITypeParameter genArg in method.TypeParameters) { Write(writer, nameTable, genArg); } }
public static void Write (BinaryWriter writer, INameEncoder nameTable, DomLocation location) { if (WriteNull (writer, location)) return; writer.Write (location.Line); writer.Write (location.Column); }
public static void WriteTo(IEvent ev, BinaryWriter writer, INameEncoder nameTable) { PersistentHelper.WriteString (ev.FullyQualifiedName, writer, nameTable); PersistentHelper.WriteString (ev.Documentation, writer, nameTable); writer.Write ((uint)ev.Modifiers); PersistentReturnType.WriteTo (ev.ReturnType, writer, nameTable); PersistentRegion.WriteTo (ev.Region, writer, nameTable); }
public static void WriteTo(IProperty p, BinaryWriter writer, INameEncoder nameTable) { PersistentHelper.WriteString (p.FullyQualifiedName, writer, nameTable); PersistentHelper.WriteString (p.Documentation, writer, nameTable); writer.Write((uint)p.Modifiers + (p.CanGet ? canGetFlag : 0) + (p.CanSet ? canSetFlag : 0)); PersistentReturnType.WriteTo (p.ReturnType, writer, nameTable); PersistentRegion.WriteTo (p.Region, writer, nameTable); }
public static void Write(BinaryWriter writer, INameEncoder nameTable, CodeExpression[] exps) { writer.Write(exps.Length); foreach (CodeExpression exp in exps) { Write(writer, nameTable, exp); } }
public static void Write (BinaryWriter writer, INameEncoder nameTable, DomRegion region) { if (WriteNull (writer, region)) return; writer.Write (region.Start.Line); writer.Write (region.Start.Column); writer.Write (region.End.Line); writer.Write (region.End.Column); }
internal static void WriteAttributeEntryList(BinaryWriter writer, INameEncoder nameTable, List <AttributeEntry> list) { writer.Write(list.Count); foreach (AttributeEntry e in list) { WriteString(e.File, writer, nameTable); Write(writer, nameTable, e.Attribute); } }
public static void Write(BinaryWriter writer, INameEncoder nameTable, DomLocation location) { if (WriteNull(writer, location)) { return; } writer.Write(location.Line); writer.Write(location.Column); }
public static void Write(BinaryWriter writer, INameEncoder nameTable, DomRegion region) { if (WriteNull(writer, region)) { return; } writer.Write(region.Start.Line); writer.Write(region.Start.Column); writer.Write(region.End.Line); writer.Write(region.End.Column); }
static void WriteMemberInformation(BinaryWriter writer, INameEncoder nameTable, IMember member) { WriteString(member.Name, writer, nameTable); WriteString(member.Documentation, writer, nameTable); writer.Write((uint)member.Modifiers); Write(writer, nameTable, member.Location); writer.Write(member.Attributes.Count()); foreach (IAttribute attr in member.Attributes) { Write(writer, nameTable, attr); } }
public static void WriteTo(IMethod met, BinaryWriter writer, INameEncoder nameTable) { PersistentHelper.WriteString (met.FullyQualifiedName, writer, nameTable); PersistentHelper.WriteString (met.Documentation, writer, nameTable); writer.Write ((uint)met.Modifiers); PersistentReturnType.WriteTo (met.ReturnType, writer, nameTable); writer.Write (met.Parameters != null ? (uint)met.Parameters.Count : (uint)0); foreach (IParameter p in met.Parameters) { PersistentParameter.WriteTo (p, writer, nameTable); } PersistentRegion.WriteTo (met.Region, writer, nameTable); }
public static void WriteTo(IIndexer ind, BinaryWriter writer, INameEncoder nameTable) { PersistentHelper.WriteString (ind.FullyQualifiedName, writer, nameTable); PersistentHelper.WriteString (ind.Documentation, writer, nameTable); writer.Write((uint)ind.Modifiers); PersistentReturnType.WriteTo (ind.ReturnType, writer, nameTable); writer.Write ((uint)ind.Parameters.Count); foreach (IParameter p in ind.Parameters) { PersistentParameter.WriteTo (p, writer, nameTable); } PersistentRegion.WriteTo (ind.Region, writer, nameTable); }
public static void WriteTo(IReturnType rt, BinaryWriter writer, INameEncoder nameTable) { if (PersistentHelper.WriteNull (rt, writer)) return; PersistentHelper.WriteString (rt.FullyQualifiedName, writer, nameTable); writer.Write (rt.PointerNestingLevel); if (rt.ArrayDimensions == null) { writer.Write((uint)0); } else { writer.Write((uint)rt.ArrayDimensions.Length); for (uint i = 0; i < rt.ArrayDimensions.Length; ++i) { writer.Write (rt.ArrayDimensions[i]); } } }
static void WriteString(string s, BinaryWriter writer, INameEncoder nameTable) { if (s == null) { writer.Write(-2); } else { bool isNew; int id = nameTable.GetStringId(s, out isNew); writer.Write(id); if (isNew) { writer.Write(s); } } }
public static void Write(BinaryWriter writer, INameEncoder nameTable, IParameter parameter) { Debug.Assert(parameter != null); WriteString(parameter.Name, writer, nameTable); writer.Write((uint)parameter.ParameterModifiers); Write(writer, nameTable, parameter.ReturnType); Write(writer, nameTable, parameter.Location); if (parameter.DefaultValue is CodePrimitiveExpression) { writer.Write(true); Write(writer, nameTable, (CodePrimitiveExpression)parameter.DefaultValue); } else { writer.Write(false); } }
public static void Write(BinaryWriter writer, INameEncoder nameTable, IEvent evt) { Debug.Assert(evt != null); WriteMemberInformation(writer, nameTable, evt); Write(writer, nameTable, evt.ReturnType); if (!WriteNull(writer, evt.AddMethod)) { Write(writer, nameTable, evt.AddMethod); } if (!WriteNull(writer, evt.RemoveMethod)) { Write(writer, nameTable, evt.RemoveMethod); } if (!WriteNull(writer, evt.RaiseMethod)) { Write(writer, nameTable, evt.RaiseMethod); } }
public static void Write(BinaryWriter writer, INameEncoder nameTable, ITypeParameter typeParameter) { WriteString(typeParameter.Name, writer, nameTable); // Flags byte f = 0; if (typeParameter.ClassRequired) { f |= 1; } if (typeParameter.ValueTypeRequired) { f |= 2; } if (typeParameter.ConstructorRequired) { f |= 4; } writer.Write(f); // Variance writer.Write((byte)typeParameter.Variance); // Constraints writer.Write(typeParameter.Constraints.Count()); foreach (IReturnType rt in typeParameter.Constraints) { Write(writer, nameTable, rt); } // Attributes writer.Write(typeParameter.Attributes.Count()); foreach (IAttribute attr in typeParameter.Attributes) { Write(writer, nameTable, attr); } }
public static void Write(BinaryWriter writer, INameEncoder nameTable, IAttribute attr) { WriteString(attr.Name, writer, nameTable); Write(writer, nameTable, attr.Region); writer.Write((int)attr.AttributeTarget); Write(writer, nameTable, attr.AttributeType); CodeExpression[] exps = new CodeExpression [attr.PositionalArguments.Count + attr.NamedArguments.Count]; // Save the named argument count. The remaining expressions will be considered positionl arguments. writer.Write((uint)attr.NamedArguments.Count); int n = 0; foreach (KeyValuePair <string, CodeExpression> na in attr.NamedArguments) { WriteString(na.Key, writer, nameTable); exps [n++] = na.Value; } attr.PositionalArguments.CopyTo(exps, n); Write(writer, nameTable, exps); }
public static void Write(BinaryWriter writer, INameEncoder nameTable, CodeExpression cexp) { if (cexp is CodePrimitiveExpression) { CodePrimitiveExpression exp = (CodePrimitiveExpression)cexp; if (exp.Value == null) { writer.Write((int)TypeCode.DBNull); return; } if (!(exp.Value is Array)) { writer.Write((int)Type.GetTypeCode(exp.Value.GetType())); WriteString(Convert.ToString(exp.Value, CultureInfo.InvariantCulture), writer, nameTable); return; } } writer.Write((int)TypeCode.Object); serializer.Serialize(writer, cexp, typeof(CodeExpression)); }
public static void Write(BinaryWriter writer, INameEncoder nameTable, IReturnType returnType) { if (WriteNull(writer, returnType)) { return; } int index = DomReturnType.GetIndex(returnType); if (index >= 0) { writer.Write((byte)index); return; } writer.Write((byte)0xFF); WriteString(returnType.Namespace, writer, nameTable); writer.Write((uint)returnType.Parts.Count); foreach (ReturnTypePart part in returnType.Parts) { WriteString(part.Name, writer, nameTable); writer.Write(part.IsGenerated); writer.Write((uint)part.GenericArguments.Count); foreach (IReturnType rtp in part.GenericArguments) { Write(writer, nameTable, rtp); } } writer.Write(returnType.PointerNestingLevel); writer.Write(returnType.IsNullable); writer.Write(returnType.IsByRef); writer.Write(returnType.ArrayDimensions); for (int n = 0; n < returnType.ArrayDimensions; n++) { writer.Write(returnType.GetDimension(n)); } }
public static void Write(BinaryWriter writer, INameEncoder nameTable, IProperty property) { Debug.Assert(property != null); // WriteMemberInformation (changed for storing getter & setter modifiers) WriteString(property.Name, writer, nameTable); WriteString(property.Documentation, writer, nameTable); writer.Write((uint)property.GetterModifier); writer.Write((uint)property.SetterModifier); Write(writer, nameTable, property.Location); writer.Write(property.Attributes.Count()); foreach (IAttribute attr in property.Attributes) { Write(writer, nameTable, attr); } // End writer.Write(property.ExplicitInterfaces.Count()); foreach (IReturnType returnType in property.ExplicitInterfaces) { Write(writer, nameTable, returnType); } writer.Write(property.Parameters.Count); foreach (IParameter param in property.Parameters) { Write(writer, nameTable, param); } Write(writer, nameTable, property.BodyRegion); Write(writer, nameTable, property.ReturnType); writer.Write((int)property.PropertyModifier); Write(writer, nameTable, property.GetRegion); Write(writer, nameTable, property.SetRegion); }
public static void Write (BinaryWriter writer, INameEncoder nameTable, IProperty property) { Debug.Assert (property != null); // WriteMemberInformation (changed for storing getter & setter modifiers) WriteString (property.Name, writer, nameTable); WriteString (property.Documentation, writer, nameTable); writer.Write ((uint)property.GetterModifier); writer.Write ((uint)property.SetterModifier); Write (writer, nameTable, property.Location); writer.Write (property.Attributes.Count ()); foreach (IAttribute attr in property.Attributes) Write (writer, nameTable, attr); // End writer.Write (property.ExplicitInterfaces.Count ()); foreach (IReturnType returnType in property.ExplicitInterfaces) { Write (writer, nameTable, returnType); } writer.Write (property.Parameters.Count); foreach (IParameter param in property.Parameters) { Write (writer, nameTable, param); } Write (writer, nameTable, property.BodyRegion); Write (writer, nameTable, property.ReturnType); writer.Write ((int)property.PropertyModifier); Write (writer, nameTable, property.GetRegion); Write (writer, nameTable, property.SetRegion); }
public static void Write (BinaryWriter writer, INameEncoder nameTable, IEvent evt) { Debug.Assert (evt != null); WriteMemberInformation (writer, nameTable, evt); Write (writer, nameTable, evt.ReturnType); if (!WriteNull (writer, evt.AddMethod)) Write (writer, nameTable, evt.AddMethod); if (!WriteNull (writer, evt.RemoveMethod)) Write (writer, nameTable, evt.RemoveMethod); if (!WriteNull (writer, evt.RaiseMethod)) Write (writer, nameTable, evt.RaiseMethod); }
public static void Write(BinaryWriter writer, INameEncoder nameTable, IField field) { Debug.Assert(field != null); WriteMemberInformation(writer, nameTable, field); Write(writer, nameTable, field.ReturnType); }
public static void Write (BinaryWriter writer, INameEncoder nameTable, IType type) { nameTable.Reset (); WriteInternal (writer, nameTable, type); }
public static void Write (BinaryWriter writer, INameEncoder nameTable, IReturnType returnType) { if (WriteNull (writer, returnType)) return; int index = DomReturnType.GetIndex (returnType); if (index >= 0) { writer.Write ((byte)index); return; } writer.Write ((byte)0xFF); WriteString (returnType.Namespace, writer, nameTable); writer.Write ((uint) returnType.Parts.Count); foreach (ReturnTypePart part in returnType.Parts) { WriteString (part.Name, writer, nameTable); writer.Write (part.IsGenerated); writer.Write ((uint) part.GenericArguments.Count); foreach (IReturnType rtp in part.GenericArguments) Write (writer, nameTable, rtp); } writer.Write (returnType.PointerNestingLevel); writer.Write (returnType.IsNullable); writer.Write (returnType.IsByRef); writer.Write (returnType.ArrayDimensions); for (int n=0; n<returnType.ArrayDimensions; n++) writer.Write (returnType.GetDimension (n)); }
public static void Write (BinaryWriter writer, INameEncoder nameTable, IParameter parameter) { Debug.Assert (parameter != null); WriteString (parameter.Name, writer, nameTable); writer.Write ((uint)parameter.ParameterModifiers); Write (writer, nameTable, parameter.ReturnType); Write (writer, nameTable, parameter.Location); if(parameter.DefaultValue is CodePrimitiveExpression) { writer.Write (true); Write (writer, nameTable, (CodePrimitiveExpression) parameter.DefaultValue); } else writer.Write (false); }
public static void WriteTo(IRegion reg, BinaryWriter writer, INameEncoder nameTable) { if (PersistentHelper.WriteNull (reg, writer)) return; PersistentHelper.WriteString (reg.FileName, writer, nameTable); writer.Write (reg.BeginLine); writer.Write (reg.BeginColumn); writer.Write (reg.EndColumn); writer.Write (reg.EndLine); }
static void WriteInternal (BinaryWriter writer, INameEncoder nameTable, IType type) { Debug.Assert (type != null); if (type is DomTypeProxy) type = ((DomTypeProxy)type).WrappedType; if (type is CompoundType && ((CompoundType)type).PartsCount > 1) { CompoundType compoundType = type as CompoundType; writer.Write ((uint)compoundType.PartsCount); foreach (IType part in compoundType.Parts) WriteInternal (writer, nameTable, part); return; } writer.Write ((uint)1); WriteMemberInformation (writer, nameTable, type); writer.Write ((uint)type.TypeModifier); Write (writer, nameTable, type.BodyRegion); if (type.CompilationUnit != null) { if (string.IsNullOrEmpty (type.CompilationUnit.FileName)) { LoggingService.LogError ("compilation unit file name == null. Can't write invalid data for:" + type.Name); throw new InvalidDataException ("compilation unit file name == null. Can't write invalid data for:" + type.Name); } WriteString (type.CompilationUnit.FileName, writer, nameTable); } else { WriteString (null, writer, nameTable); } WriteString (type.Namespace, writer, nameTable); writer.Write ((uint)type.ClassType); Write (writer, nameTable, type.BaseType); if (type.ImplementedInterfaces == null) { writer.Write (0); } else { writer.Write (type.ImplementedInterfaces.Count); foreach (IReturnType iface in type.ImplementedInterfaces) { Write (writer, nameTable, iface); } } writer.Write (type.InnerTypeCount); // if (verbose) System.Console.WriteLine("pos:{0}, write {1} inner types.", writer.BaseStream.Position, type.InnerTypeCount); foreach (IType innerType in type.InnerTypes) { WriteInternal (writer, nameTable, innerType); } writer.Write (type.FieldCount); // if (verbose) System.Console.WriteLine("pos:{0}, write {1} fields.", writer.BaseStream.Position, type.FieldCount); foreach (IField field in type.Fields) { Write (writer, nameTable, field); } writer.Write (type.MethodCount + type.ConstructorCount); // if (verbose) System.Console.WriteLine("pos:{0}, write {1} methods.", writer.BaseStream.Position, type.MethodCount + type.ConstructorCount); foreach (IMethod method in type.Methods) { Write (writer, nameTable, method); } writer.Write (type.PropertyCount + type.IndexerCount); // if (verbose) System.Console.WriteLine("pos:{0}, write {1} properties.", writer.BaseStream.Position, type.PropertyCount + type.IndexerCount); foreach (IProperty property in type.Properties) { Write (writer, nameTable, property); } writer.Write (type.EventCount); // if (verbose) System.Console.WriteLine("pos:{0}, write {1} events.", writer.BaseStream.Position, type.EventCount); foreach (IEvent evt in type.Events) { Write (writer, nameTable, evt); } writer.Write (type.TypeParameters.Count); foreach (TypeParameter tp in type.TypeParameters) Write (writer, nameTable, tp); }
public static void Write(BinaryWriter writer, INameEncoder nameTable, IType type) { nameTable.Reset(); WriteInternal(writer, nameTable, type); }
internal static void WriteAttributeEntryList (BinaryWriter writer, INameEncoder nameTable, List<AttributeEntry> list) { writer.Write (list.Count); foreach (AttributeEntry e in list) { WriteString (e.File, writer, nameTable); Write (writer, nameTable, e.Attribute); } }
public static void WriteString(string s, BinaryWriter writer, INameEncoder nameTable) { if (s == null) writer.Write (-2); else { int id = nameTable.GetStringId (s); writer.Write (id); if (id == -1) writer.Write (s); } }
public static void Write (BinaryWriter writer, INameEncoder nameTable, ITypeParameter typeParameter) { WriteString (typeParameter.Name, writer, nameTable); // Flags writer.Write ((byte)typeParameter.TypeParameterModifier); // Variance writer.Write ((byte)typeParameter.Variance); // Constraints writer.Write (typeParameter.Constraints.Count ()); foreach (IReturnType rt in typeParameter.Constraints) Write (writer, nameTable, rt); // Attributes writer.Write (typeParameter.Attributes.Count ()); foreach (IAttribute attr in typeParameter.Attributes) Write (writer, nameTable, attr); }
static void WriteMemberInformation (BinaryWriter writer, INameEncoder nameTable, IMember member) { WriteString (member.Name, writer, nameTable); WriteString (member.Documentation, writer, nameTable); writer.Write ((uint)member.Modifiers); Write (writer, nameTable, member.Location); writer.Write (member.Attributes.Count ()); foreach (IAttribute attr in member.Attributes) Write (writer, nameTable, attr); }
public static void Write (BinaryWriter writer, INameEncoder nameTable, IAttribute attr) { WriteString (attr.Name, writer, nameTable); Write (writer, nameTable, attr.Region); writer.Write ((int)attr.AttributeTarget); Write (writer, nameTable, attr.AttributeType); CodeExpression[] exps = new CodeExpression [attr.PositionalArguments.Count + attr.NamedArguments.Count]; // Save the named argument count. The remaining expressions will be considered positionl arguments. writer.Write ((uint)attr.NamedArguments.Count); int n = 0; foreach (KeyValuePair<string, CodeExpression> na in attr.NamedArguments) { WriteString (na.Key, writer, nameTable); exps [n++] = na.Value; } attr.PositionalArguments.CopyTo (exps, n); Write (writer, nameTable, exps); }
static void WriteInternal(BinaryWriter writer, INameEncoder nameTable, IType type) { Debug.Assert(type != null); if (type is CompoundType && ((CompoundType)type).PartsCount > 1) { CompoundType compoundType = type as CompoundType; writer.Write((uint)compoundType.PartsCount); foreach (IType part in compoundType.Parts) { WriteInternal(writer, nameTable, part); } return; } writer.Write((uint)1); WriteMemberInformation(writer, nameTable, type); writer.Write((uint)type.TypeModifier); Write(writer, nameTable, type.BodyRegion); if (type.CompilationUnit != null) { WriteString(type.CompilationUnit.FileName, writer, nameTable); } else { WriteString(null, writer, nameTable); } WriteString(type.Namespace, writer, nameTable); writer.Write((uint)type.ClassType); Write(writer, nameTable, type.BaseType); if (type.ImplementedInterfaces == null) { writer.Write(0); } else { writer.Write(type.ImplementedInterfaces.Count); foreach (IReturnType iface in type.ImplementedInterfaces) { Write(writer, nameTable, iface); } } writer.Write(type.InnerTypeCount); // if (verbose) System.Console.WriteLine("pos:{0}, write {1} inner types.", writer.BaseStream.Position, type.InnerTypeCount); foreach (IType innerType in type.InnerTypes) { WriteInternal(writer, nameTable, innerType); } writer.Write(type.FieldCount); // if (verbose) System.Console.WriteLine("pos:{0}, write {1} fields.", writer.BaseStream.Position, type.FieldCount); foreach (IField field in type.Fields) { Write(writer, nameTable, field); } writer.Write(type.MethodCount + type.ConstructorCount); // if (verbose) System.Console.WriteLine("pos:{0}, write {1} methods.", writer.BaseStream.Position, type.MethodCount + type.ConstructorCount); foreach (IMethod method in type.Methods) { Write(writer, nameTable, method); } writer.Write(type.PropertyCount + type.IndexerCount); // if (verbose) System.Console.WriteLine("pos:{0}, write {1} properties.", writer.BaseStream.Position, type.PropertyCount + type.IndexerCount); foreach (IProperty property in type.Properties) { Write(writer, nameTable, property); } writer.Write(type.EventCount); // if (verbose) System.Console.WriteLine("pos:{0}, write {1} events.", writer.BaseStream.Position, type.EventCount); foreach (IEvent evt in type.Events) { Write(writer, nameTable, evt); } writer.Write(type.TypeParameters.Count); foreach (TypeParameter tp in type.TypeParameters) { Write(writer, nameTable, tp); } }
static void WriteString (string s, BinaryWriter writer, INameEncoder nameTable) { if (s == null) writer.Write (-2); else { bool isNew; int id = nameTable.GetStringId (s, out isNew); writer.Write (id); if (isNew) writer.Write (s); } }
public static void Write (BinaryWriter writer, INameEncoder nameTable, IField field) { Debug.Assert (field != null); WriteMemberInformation (writer, nameTable, field); Write (writer, nameTable, field.ReturnType); }
public static void Write (BinaryWriter writer, INameEncoder nameTable, ITypeParameter typeParameter) { WriteString (typeParameter.Name, writer, nameTable); // Flags byte f = 0; if (typeParameter.ClassRequired) f |= 1; if (typeParameter.ValueTypeRequired) f |= 2; if (typeParameter.ConstructorRequired) f |= 4; writer.Write (f); // Variance writer.Write ((byte)typeParameter.Variance); // Constraints writer.Write (typeParameter.Constraints.Count ()); foreach (IReturnType rt in typeParameter.Constraints) Write (writer, nameTable, rt); // Attributes writer.Write (typeParameter.Attributes.Count ()); foreach (IAttribute attr in typeParameter.Attributes) Write (writer, nameTable, attr); }
public static void Write (BinaryWriter writer, INameEncoder nameTable, CodeExpression[] exps) { writer.Write (exps.Length); foreach (CodeExpression exp in exps) { Write (writer, nameTable, exp); } }
public static void Write (BinaryWriter writer, INameEncoder nameTable, IMethod method) { Debug.Assert (method != null); WriteMemberInformation (writer, nameTable, method); writer.Write (method.ExplicitInterfaces.Count()); foreach (IReturnType returnType in method.ExplicitInterfaces) { Write (writer, nameTable, returnType); } Write (writer, nameTable, method.BodyRegion); Write (writer, nameTable, method.ReturnType); writer.Write ((int)method.MethodModifier); if (method.Parameters == null) { writer.Write (0); } else { writer.Write (method.Parameters.Count); foreach (IParameter param in method.Parameters) { Write (writer, nameTable, param); } } writer.Write (method.TypeParameters.Count); foreach (ITypeParameter genArg in method.TypeParameters) { Write (writer, nameTable, genArg); } }
public static void Write (BinaryWriter writer, INameEncoder nameTable, CodeExpression cexp) { if (cexp is CodePrimitiveExpression) { CodePrimitiveExpression exp = (CodePrimitiveExpression)cexp; if (exp.Value == null) { writer.Write ((int)TypeCode.DBNull); return; } if (!(exp.Value is Array)) { writer.Write ((int)Type.GetTypeCode (exp.Value.GetType ())); WriteString (Convert.ToString (exp.Value, CultureInfo.InvariantCulture), writer, nameTable); return; } } writer.Write ((int)TypeCode.Object); serializer.Serialize (writer, cexp, typeof(CodeExpression)); }
public static void WriteTo(IClass cls, BinaryWriter writer, INameEncoder nameTable) { PersistentHelper.WriteString (cls.FullyQualifiedName, writer, nameTable); PersistentHelper.WriteString (cls.Documentation, writer, nameTable); writer.Write((uint)cls.Modifiers); writer.Write((short)cls.ClassType); writer.Write((uint)(cls.BaseTypes.Count)); foreach (string baseType in cls.BaseTypes) PersistentHelper.WriteString (baseType, writer, nameTable); writer.Write((uint)cls.InnerClasses.Count); foreach (IClass innerClass in cls.InnerClasses) { PersistentClass.WriteTo (innerClass, writer, nameTable); } writer.Write((uint)cls.Fields.Count); foreach (IField field in cls.Fields) { PersistentField.WriteTo (field, writer, nameTable); } writer.Write((uint)cls.Properties.Count); foreach (IProperty property in cls.Properties) { PersistentProperty.WriteTo (property, writer, nameTable); } writer.Write((uint)cls.Methods.Count); foreach (IMethod method in cls.Methods) { PersistentMethod.WriteTo (method, writer, nameTable); } writer.Write((uint)cls.Events.Count); foreach (IEvent e in cls.Events) { PersistentEvent.WriteTo (e, writer, nameTable); } writer.Write((uint)cls.Indexer.Count); foreach (IIndexer ind in cls.Indexer) { PersistentIndexer.WriteTo (ind, writer, nameTable); } PersistentRegion.WriteTo (cls.Region, writer, nameTable); }