public WicMetadataPolicies(WicMetadataQueryReader reader) { if (reader == null) { throw new ArgumentNullException(nameof(reader)); } Reader = reader; }
IEnumerator<WicMetadataKeyValue> IEnumerable<WicMetadataKeyValue>.GetEnumerator() { foreach (var name in Strings) { if (name == null) continue; if (!TryGetMetadataByName(name, out var value, out var type)) continue; if (value is IWICMetadataQueryReader reader) { var childReader = new WicMetadataQueryReader(reader); yield return new WicMetadataKeyValue(new WicMetadataKey(childReader.ContainerFormat, name), childReader, type); } else { yield return new WicMetadataKeyValue(new WicMetadataKey(ContainerFormat, name), value, type); } } }