protected internal override object Read(ContentReader input, object existingInstance) { T obj; if (existingInstance != null) { obj = (T)existingInstance; } else { obj = (_constructor == null ? (T)Activator.CreateInstance(typeof(T)) : (T)_constructor.Invoke(null)); } if (_baseTypeReader != null) { _baseTypeReader.Read(input, obj); } // Box the type. var boxed = (object)obj; foreach (var reader in _readers) { reader(input, boxed); } // Unbox it... required for value types. obj = (T)boxed; return(obj); }
public T ReadObject <T>(ContentTypeReader typeReader) { T result = (T)typeReader.Read(this, default(T)); RecordDisposable(result); return(result); }
protected internal override object Read(ContentReader input, object existingInstance) { T obj; if (existingInstance != null) { obj = (T)existingInstance; } else { obj = (T)constructor.Invoke(null); } if (baseTypeReader != null) { baseTypeReader.Read(input, obj); } foreach (PropertyInfo property in properties) { Read(obj, input, property); } foreach (FieldInfo field in fields) { Read(obj, input, field); } return(obj); }
public T ReadObject <T>(ContentTypeReader typeReader, T existingInstance) { if (!typeReader.TargetType.IsValueType) { return((T)ReadObject <object>()); } return((T)typeReader.Read(this, existingInstance)); }
public T ReadObject <T>(T existingInstance) { ContentTypeReader typeReader = typeReaderManager.GetTypeReader(typeof(T)); if (typeReader != null) { return((T)typeReader.Read(this, existingInstance)); } throw new ContentLoadException(String.Format("Could not read object type " + typeof(T).Name)); }
public T ReadObject <T>(ContentTypeReader typeReader, T existingInstance) { if (!typeReader.TargetType.IsValueType) { return((T)ReadObject <object>()); } T result = (T)typeReader.Read(this, existingInstance); RecordDisposable(result); return(result); }
public T ReadObject<T>(ContentTypeReader typeReader, T existingInstance) { if (!ReflectionHelpers.IsValueType(typeReader.TargetType)) return ReadObject(existingInstance); var result = (T)typeReader.Read(this, existingInstance); RecordDisposable(result); return result; }
public T ReadObject <T>(ContentTypeReader typeReader, T existingInstance) { #if WINRT if (!typeReader.TargetType.GetTypeInfo().IsValueType) #else if (!typeReader.TargetType.IsValueType) #endif { return((T)ReadObject <object>()); } var result = (T)typeReader.Read(this, existingInstance); RecordDisposable(result); return(result); }
private T InnerReadObject <T>(T existingInstance) { int typeReaderIndex = Read7BitEncodedInt(); if (typeReaderIndex == 0) { return(existingInstance); } if (typeReaderIndex > typeReaders.Length) { throw new ContentLoadException( "Incorrect type reader index found!" ); } ContentTypeReader typeReader = typeReaders[typeReaderIndex - 1]; T result = (T)typeReader.Read(this, default(T)); RecordDisposable(result); return(result); }
protected internal override object Read( ContentReader input, object existingInstance ) { T obj; if (existingInstance != null) { obj = (T)existingInstance; } else { if (constructor == null) { obj = (T)Activator.CreateInstance(typeof(T)); } else { obj = (T)constructor.Invoke(null); } } if (baseTypeReader != null) { baseTypeReader.Read(input, obj); } // Box the type. object boxed = (object)obj; foreach (PropertyInfo property in properties) { Read(boxed, input, property); } foreach (FieldInfo field in fields) { Read(boxed, input, field); } // Unbox it... required for value types. obj = (T)boxed; return(obj); }
public T ReadRawObject <T>(ContentTypeReader typeReader, T existingInstance) { return((T)typeReader.Read(this, existingInstance)); }
public T ReadObject <T>(ContentTypeReader typeReader) { //typeReader.Initialize(new ContentTypeReaderManager(this)); return((T)typeReader.Read(this, default(T))); }
public T ReadObject <T>(ContentTypeReader typeReader) { return((T)typeReader.Read(this, default(T))); }