public static void WriteDocument(BamlDocument doc, Stream str) { var writer = new BamlBinaryWriter(str); { var wtr = new BinaryWriter(str, Encoding.Unicode); int len = doc.Signature.Length * 2; wtr.Write(len); wtr.Write(doc.Signature.ToCharArray()); wtr.Write(new byte[((len + 3) & ~3) - len]); } writer.Write(doc.ReaderVersion.Major); writer.Write(doc.ReaderVersion.Minor); writer.Write(doc.UpdaterVersion.Major); writer.Write(doc.UpdaterVersion.Minor); writer.Write(doc.WriterVersion.Major); writer.Write(doc.WriterVersion.Minor); var defers = new List<int>(); for (int i = 0; i < doc.Count; i++) { BamlRecord rec = doc[i]; rec.Position = str.Position; writer.Write((byte)rec.Type); rec.Write(writer); if (rec is IBamlDeferRecord) defers.Add(i); } foreach (int i in defers) (doc[i] as IBamlDeferRecord).WriteDefer(doc, i, writer); }
protected override void WriteData(BamlBinaryWriter writer) { writer.Write(XmlNamespace); writer.Write(ClrNamespace); writer.Write(AssemblyId); }
protected abstract void WriteData(BamlBinaryWriter writer);
public override void Write(BamlBinaryWriter writer) { writer.Write(TypeId); if (RuntimeName != null) { writer.Write(RuntimeName); } }
protected override void WriteData(BamlBinaryWriter writer) => writer.Write(ValueId);
public abstract void Write(BamlBinaryWriter writer);
public override void Write(BamlBinaryWriter writer) { writer.Write(ConnectionId); }
protected override void WriteData(BamlBinaryWriter writer) { base.WriteData(writer); writer.Write(ConverterTypeId); }
protected override void WriteData(BamlBinaryWriter writer) { writer.Write(AttributeId); writer.Write(SerializerTypeId); writer.Write(Data); }
public override void Write(BamlBinaryWriter writer) { writer.Write(LinePosition); }
public override void Write(BamlBinaryWriter writer) { writer.Write(StaticResourceId); }
public override void Write(BamlBinaryWriter writer) { pos = writer.BaseStream.Position; writer.Write((uint)0); }
protected override void WriteData(BamlBinaryWriter writer) { writer.Write(ValueId); pos = (uint)writer.BaseStream.Position; writer.Write((uint)0); writer.Write(Shared); writer.Write(SharedSet); }
protected override void WriteData(BamlBinaryWriter writer) { writer.Write(AttributeId); writer.Write(OwnerTypeId); writer.Write(AttributeUsage); writer.Write(Name); }
protected override void WriteData(BamlBinaryWriter writer) { writer.Write(TypeId); writer.Write(AssemblyId); writer.Write(TypeFullName); }
protected override void WriteData(BamlBinaryWriter writer) { writer.Write(Value); writer.Write(AttributeId); }
protected override void WriteData(BamlBinaryWriter writer) { writer.Write(StringId); writer.Write(Value); }
public override void Write(BamlBinaryWriter writer) { base.Write(writer); writer.Write(StringId); }
public override void Write(BamlBinaryWriter writer) { }
protected override void WriteData(BamlBinaryWriter writer) { writer.Write(Value); writer.Write(Reserved0); writer.Write(Reserved1); }
public override void Write(BamlBinaryWriter writer) { long pos = writer.BaseStream.Position; WriteData(writer); var size = (int)(writer.BaseStream.Position - pos); size = SizeofEncodedInt(SizeofEncodedInt(size) + size) + size; writer.BaseStream.Position = pos; writer.WriteEncodedInt(size); WriteData(writer); }
public override void Write(BamlBinaryWriter writer) { writer.Write(LoadAsync); writer.Write(MaxAsyncRecords); writer.Write(DebugBaml); }
protected override void WriteData(BamlBinaryWriter writer) { writer.Write(Prefix); writer.Write(XmlNamespace); writer.Write((ushort)AssemblyIds.Length); foreach (ushort i in AssemblyIds) writer.Write(i); }
public override void Write(BamlBinaryWriter writer) { writer.Write(TypeId); writer.Write(Flags); }
public override void Write(BamlBinaryWriter writer) { writer.Write(AttributeId); writer.Write(Flags); writer.Write(ValueId); }
public override void Write(BamlBinaryWriter writer) { writer.Write(AttributeId); }
public override void Write(BamlBinaryWriter writer) { base.Write(writer); pos = (uint)writer.BaseStream.Position; writer.Write((uint)0); writer.Write(Shared); writer.Write(SharedSet); }
public override void Write(BamlBinaryWriter writer) { writer.Write(TypeId); }
public override void Write(BamlBinaryWriter writer) => writer.Write(TypeId);