예제 #1
0
        public void WriteObject <T>(T value)
        {
            if (value == null)
            {
                Write(0);
                return;
            }

            ContentTypeWriter writer = _manager.GetTypeWriter(value.GetType());
            int index;

            if (!_typeMap.TryGetValue(writer, out index))
            {
                index = _contentWriterList.Count;
                _contentWriterList.Add(writer);
                _typeMap.Add(writer, index);
            }

            if (!writer.IsPrimitiveType)
            {
                Write(index + 1);
            }

            writer.Write(this, value);
        }
예제 #2
0
        public void WriteRawObject <T>(T value)
        {
            ContentTypeWriter writer = _manager.GetTypeWriter(typeof(T));
            int index;

            if (!_typeMap.TryGetValue(writer, out index))
            {
                index = _contentWriterList.Count;
                _contentWriterList.Add(writer);
                _typeMap.Add(writer, index);
            }

            writer.Write(this, value);
        }
예제 #3
0
 public void WriteRawObject <T>(T value, ContentTypeWriter writer)
 {
     writer.Write(this, value);
 }