public void RegisterTypeReader(Type type, ContentTypeReader reader) { if (!_contentTypeMap.ContainsKey(type)) { reader.Initialize(this); _contentTypeMap.Add(type, reader); } }
public T ReadObject <T>(ContentTypeReader reader) { if (reader == null) { throw new ArgumentNullException("reader"); } if (reader.IsPrimitiveType) { return(InvokeReader <T>(reader)); } else { return(ReadObject <T>()); } }
public T ReadObject <T>() { int index = _input.ReadInt32(); if (index == 0) { return(default(T)); } index--; if (index > _contentReaderList.Count) { throw new ContentLoadException(string.Format("ContentTypeReader index {0} is greater than number of ContentTypeReaders {1}", index, _contentReaderList.Count)); } ContentTypeReader reader = _contentReaderList[index]; return(InvokeReader <T>(reader)); }
private int ReadHeader() { int typeCount = _input.ReadInt32(); for (int i = 0; i < typeCount; i++) { Guid readerID = ReadGuid(); ContentTypeReader reader = _manager.GetTypeReaderByID(readerID); _contentReaderList.Add(reader); } int resourceCount = _input.ReadInt32(); _sharedResourceCallbacks = new List <Action <object> > [resourceCount]; for (int i = 0; i < resourceCount; i++) { _sharedResourceCallbacks[i] = new List <Action <object> >(); } return(resourceCount); }
public override void Initialize(ContentTypeReaderManager manager) { typeReader = manager.GetTypeReader(typeof(T)); }
public void RegisterTypeReader(Type type, ContentTypeReader reader) { _typeReaderManager.RegisterTypeReader(type, reader); }
public void RegisterTypeReader <T>(ContentTypeReader reader) { _typeReaderManager.RegisterTypeReader <T>(reader); }
private T InvokeReader <T>(ContentTypeReader reader) { return((T)reader.Read(this)); }
public T ReadObjectRaw <T>(ContentTypeReader reader) { return(InvokeReader <T>(reader)); }
public T ReadObjectRaw <T>() { ContentTypeReader reader = _manager.GetTypeReader(typeof(T)); return(InvokeReader <T>(reader)); }
public void RegisterTypeReader <T>(ContentTypeReader reader) { RegisterTypeReader(typeof(T), reader); }
public override void Initialize(ContentTypeReaderManager manager) { keyReader = manager.GetTypeReader(typeof(TKey)); valueReader = manager.GetTypeReader(typeof(TValue)); }