예제 #1
0
		public override int MarshalledLength(ObjectContainerBase stream, ClassAspect aspect
			)
		{
			int len = stream.StringIO().ShortLength(aspect.GetName());
			if (aspect is FieldMetadata)
			{
				FieldMetadata field = (FieldMetadata)aspect;
				if (field.NeedsArrayAndPrimitiveInfo())
				{
					len += 1;
				}
				if (!(field is VirtualFieldMetadata))
				{
					len += Const4.IdLength;
				}
			}
			return len;
		}
예제 #2
0
		public virtual int MarshalledLength(ObjectContainerBase stream, ClassMetadata clazz
			)
		{
			IntByRef len = new IntByRef(stream.StringIO().ShortLength(clazz.NameToWrite()) + 
				Const4.ObjectLength + (Const4.IntLength * 2) + (Const4.IdLength));
			len.value += clazz.Index().OwnLength();
			clazz.TraverseDeclaredAspects(new _IProcedure4_108(this, len, stream));
			return len.value;
		}
 private static void AssertNameRead(ObjectContainerBase localObjectContainer, string originalName, string newName)
 {
     var originalBytes = localObjectContainer.StringIO().Write(originalName);
     var updatedClassNameBytes = Platform4.UpdateClassName(originalBytes);
     Assert.AreEqual(newName, localObjectContainer.StringIO().Read(updatedClassNameBytes));
 }