Beispiel #1
0
		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);
		}
Beispiel #2
0
		protected override void WriteData(BamlBinaryWriter writer) {
			writer.Write(XmlNamespace);
			writer.Write(ClrNamespace);
			writer.Write(AssemblyId);
		}
Beispiel #3
0
		protected abstract void WriteData(BamlBinaryWriter writer);
Beispiel #4
0
		public override void Write(BamlBinaryWriter writer) {
			writer.Write(TypeId);
			if (RuntimeName != null) {
				writer.Write(RuntimeName);
			}
		}
Beispiel #5
0
 protected override void WriteData(BamlBinaryWriter writer) => writer.Write(ValueId);
Beispiel #6
0
		public abstract void Write(BamlBinaryWriter writer);
Beispiel #7
0
		public override void Write(BamlBinaryWriter writer) {
			writer.Write(ConnectionId);
		}
Beispiel #8
0
		protected override void WriteData(BamlBinaryWriter writer) {
			base.WriteData(writer);
			writer.Write(ConverterTypeId);
		}
Beispiel #9
0
 protected override void WriteData(BamlBinaryWriter writer)
 {
     writer.Write(AttributeId);
     writer.Write(SerializerTypeId);
     writer.Write(Data);
 }
Beispiel #10
0
 protected override void WriteData(BamlBinaryWriter writer)
 {
     writer.Write(XmlNamespace);
     writer.Write(ClrNamespace);
     writer.Write(AssemblyId);
 }
Beispiel #11
0
 protected abstract void WriteData(BamlBinaryWriter writer);
Beispiel #12
0
 public override void Write(BamlBinaryWriter writer)
 {
     writer.Write(LinePosition);
 }
Beispiel #13
0
 public override void Write(BamlBinaryWriter writer)
 {
     writer.Write(StaticResourceId);
 }
Beispiel #14
0
 public override void Write(BamlBinaryWriter writer)
 {
     pos = writer.BaseStream.Position;
     writer.Write((uint)0);
 }
Beispiel #15
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);
		}
Beispiel #16
0
		protected override void WriteData(BamlBinaryWriter writer) {
			writer.Write(AttributeId);
			writer.Write(OwnerTypeId);
			writer.Write(AttributeUsage);
			writer.Write(Name);
		}
Beispiel #17
0
 protected override void WriteData(BamlBinaryWriter writer)
 {
     writer.Write(TypeId);
     writer.Write(AssemblyId);
     writer.Write(TypeFullName);
 }
Beispiel #18
0
		protected override void WriteData(BamlBinaryWriter writer) {
			writer.Write(Value);
			writer.Write(AttributeId);
		}
Beispiel #19
0
 protected override void WriteData(BamlBinaryWriter writer)
 {
     writer.Write(StringId);
     writer.Write(Value);
 }
Beispiel #20
0
		public override void Write(BamlBinaryWriter writer) {
			base.Write(writer);
			writer.Write(StringId);
		}
Beispiel #21
0
 protected override void WriteData(BamlBinaryWriter writer)
 {
     base.WriteData(writer);
     writer.Write(ConverterTypeId);
 }
Beispiel #22
0
		public override void Write(BamlBinaryWriter writer) {
		}
Beispiel #23
0
 protected override void WriteData(BamlBinaryWriter writer)
 {
     writer.Write(Value);
     writer.Write(Reserved0);
     writer.Write(Reserved1);
 }
Beispiel #24
0
		public override void Write(BamlBinaryWriter writer) {
			writer.Write(LinePosition);
		}
Beispiel #25
0
 protected override void WriteData(BamlBinaryWriter writer)
 {
     writer.Write(Value);
     writer.Write(AttributeId);
 }
Beispiel #26
0
		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);
		}
Beispiel #27
0
 public override void Write(BamlBinaryWriter writer)
 {
     writer.Write(LoadAsync);
     writer.Write(MaxAsyncRecords);
     writer.Write(DebugBaml);
 }
Beispiel #28
0
		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);
		}
Beispiel #29
0
 public override void Write(BamlBinaryWriter writer)
 {
     writer.Write(TypeId);
     writer.Write(Flags);
 }
Beispiel #30
0
		protected override void WriteData(BamlBinaryWriter writer) {
			writer.Write(AttributeId);
			writer.Write(SerializerTypeId);
			writer.Write(Data);
		}
Beispiel #31
0
 public override void Write(BamlBinaryWriter writer)
 {
 }
Beispiel #32
0
		protected override void WriteData(BamlBinaryWriter writer) {
			writer.Write(TypeId);
			writer.Write(AssemblyId);
			writer.Write(TypeFullName);
		}
Beispiel #33
0
 public override void Write(BamlBinaryWriter writer)
 {
     writer.Write(ConnectionId);
 }
Beispiel #34
0
		protected override void WriteData(BamlBinaryWriter writer) {
			writer.Write(StringId);
			writer.Write(Value);
		}
Beispiel #35
0
 public override void Write(BamlBinaryWriter writer)
 {
     writer.Write(AttributeId);
     writer.Write(Flags);
     writer.Write(ValueId);
 }
Beispiel #36
0
		protected override void WriteData(BamlBinaryWriter writer) {
			writer.Write(Value);
			writer.Write(Reserved0);
			writer.Write(Reserved1);
		}
Beispiel #37
0
 public override void Write(BamlBinaryWriter writer)
 {
     base.Write(writer);
     writer.Write(StringId);
 }
Beispiel #38
0
		public override void Write(BamlBinaryWriter writer) {
			writer.Write(LoadAsync);
			writer.Write(MaxAsyncRecords);
			writer.Write(DebugBaml);
		}
Beispiel #39
0
 public override void Write(BamlBinaryWriter writer)
 {
     writer.Write(AttributeId);
 }
Beispiel #40
0
		public override void Write(BamlBinaryWriter writer) {
			writer.Write(AttributeId);
			writer.Write(Flags);
			writer.Write(ValueId);
		}
Beispiel #41
0
 public abstract void Write(BamlBinaryWriter writer);
Beispiel #42
0
		public override void Write(BamlBinaryWriter writer) {
			base.Write(writer);
			pos = (uint)writer.BaseStream.Position;
			writer.Write((uint)0);
			writer.Write(Shared);
			writer.Write(SharedSet);
		}
Beispiel #43
0
		public override void Write(BamlBinaryWriter writer) {
			pos = writer.BaseStream.Position;
			writer.Write((uint)0);
		}
Beispiel #44
0
		public override void Write(BamlBinaryWriter writer) {
			writer.Write(AttributeId);
		}
Beispiel #45
0
		public override void Write(BamlBinaryWriter writer) {
			writer.Write(StaticResourceId);
		}
Beispiel #46
0
		public override void Write(BamlBinaryWriter writer) {
			writer.Write(TypeId);
		}
Beispiel #47
0
 public override void Write(BamlBinaryWriter writer) => writer.Write(TypeId);