/// <summary> /// Creates and fill the data members of the runtime object for the specified <paramref name="chunkId"/>. /// </summary> /// <param name="stream">Must not be null.</param> /// <param name="chunkId">Must not be null.</param> /// <returns>Returns null when no runtime chunk type could be found for the <paramref name="chunkId"/>.</returns> /// <remarks>Note that chunks (types) are never mixed content. They are either containing other chunks /// or the contain data. This method is for reading data. /// Use the <see cref="M:ReadRuntimteContainerChunkType"/> to read sub chunks.</remarks> public object ReadRuntimeChunkType(Stream stream, FourCharacterCode chunkId) { Check.IfArgumentNull(stream, nameof(stream)); Check.IfArgumentNull(chunkId, nameof(chunkId)); var runtimeObject = _chunkTypeFactory.CreateChunkObject(chunkId); if (runtimeObject != null) { var writer = new ObjectMemberWriter(runtimeObject); writer.ReadFields(this); } return(runtimeObject); }
/// <summary> /// Creates and fill the data members of the runtime object for the specified <paramref name="chunkId"/>. /// </summary> /// <param name="stream">Must not be null.</param> /// <param name="chunkId">Must not be null.</param> /// <returns>Returns null when no runtime chunk type could be found for the <paramref name="chunkId"/>.</returns> /// <remarks>Note that chunks (types) are never mixed content. They are either containing other chunks /// or the contain data. This method is for reading data. /// Use the <see cref="M:ReadRuntimteContainerChunkType"/> to read sub chunks.</remarks> public object ReadRuntimeChunkType(Stream stream, FourCharacterCode chunkId) { Contract.Requires(stream != null); Contract.Requires(chunkId != null); Check.IfArgumentNull(stream, "stream"); Check.IfArgumentNull(chunkId, "chunkId"); var runtimeObject = this.chunkTypeFactory.CreateChunkObject(chunkId); if (runtimeObject != null) { var writer = new ObjectMemberWriter(runtimeObject); writer.ReadFields(this); } return(runtimeObject); }