public static void StreamResources() { var values = TestData.Activator; byte[] binaryWriterBuffer; using (MemoryStream ms = new MemoryStream()) using (PreserializedResourceWriter writer = new PreserializedResourceWriter(ms)) { foreach (var pair in values) { pair.Value.stream.Seek(0, SeekOrigin.Begin); writer.AddActivatorResource(pair.Key, pair.Value.stream, TestData.GetSerializationTypeName(pair.Value.type), false); } writer.Generate(); binaryWriterBuffer = ms.ToArray(); } using (MemoryStream ms = new MemoryStream(binaryWriterBuffer, false)) using (DeserializingResourceReader reader = new DeserializingResourceReader(ms)) { IDictionaryEnumerator dictEnum = reader.GetEnumerator(); while (dictEnum.MoveNext()) { var expectedTuple = values[(string)dictEnum.Key]; expectedTuple.stream.Seek(0, SeekOrigin.Begin); object expected = Activator.CreateInstance(expectedTuple.type, new object[] { expectedTuple.stream }); ResourceValueEquals(expected, dictEnum.Value); } } }
public static void TypeConverterStringResources() { var values = TestData.StringConverter; byte[] binaryWriterBuffer; using (MemoryStream ms = new MemoryStream()) using (PreserializedResourceWriter writer = new PreserializedResourceWriter(ms)) { foreach (var pair in values) { writer.AddResource(pair.Key, TestData.GetStringValue(pair.Value), TestData.GetSerializationTypeName(pair.Value.GetType())); } writer.Generate(); binaryWriterBuffer = ms.ToArray(); } using (MemoryStream ms = new MemoryStream(binaryWriterBuffer, false)) using (DeserializingResourceReader reader = new DeserializingResourceReader(ms)) { IDictionaryEnumerator dictEnum = reader.GetEnumerator(); while (dictEnum.MoveNext()) { ResourceValueEquals(values[(string)dictEnum.Key], dictEnum.Value); } } }
public static void BinaryFormattedResourcesWithoutTypeName() { var values = TestData.BinaryFormatted; byte[] binaryWriterBuffer; using (MemoryStream ms = new MemoryStream()) using (PreserializedResourceWriter writer = new PreserializedResourceWriter(ms)) { BinaryFormatter binaryFormatter = new BinaryFormatter(); foreach (var pair in values) { using (MemoryStream memoryStream = new MemoryStream()) { binaryFormatter.Serialize(memoryStream, pair.Value); writer.AddBinaryFormattedResource(pair.Key, memoryStream.ToArray()); } } writer.Generate(); binaryWriterBuffer = ms.ToArray(); } // DeserializingResourceReader can read ResourceReader format using (MemoryStream ms = new MemoryStream(binaryWriterBuffer, false)) using (DeserializingResourceReader reader = new DeserializingResourceReader(ms)) { IDictionaryEnumerator dictEnum = reader.GetEnumerator(); while (dictEnum.MoveNext()) { ResourceValueEquals(values[(string)dictEnum.Key], dictEnum.Value); } } }
public static void PrimitiveResourcesAsStrings() { IReadOnlyDictionary <string, object> values = TestData.Primitive; byte[] writerBuffer, binaryWriterBuffer; using (MemoryStream ms = new MemoryStream()) using (ResourceWriter writer = new ResourceWriter(ms)) { foreach (var pair in values) { writer.AddResource(pair.Key, pair.Value); } writer.Generate(); writerBuffer = ms.ToArray(); } using (MemoryStream ms = new MemoryStream()) using (PreserializedResourceWriter writer = new PreserializedResourceWriter(ms)) { foreach (var pair in values) { writer.AddResource(pair.Key, TestData.GetStringValue(pair.Value), TestData.GetSerializationTypeName(pair.Value.GetType())); } writer.Generate(); binaryWriterBuffer = ms.ToArray(); } // PreserializedResourceWriter should write ResourceWriter/ResourceReader format Assert.Equal(writerBuffer, binaryWriterBuffer); using (MemoryStream ms = new MemoryStream(binaryWriterBuffer, false)) using (ResourceReader reader = new ResourceReader(ms)) { IDictionaryEnumerator dictEnum = reader.GetEnumerator(); while (dictEnum.MoveNext()) { Assert.Equal(values[(string)dictEnum.Key], dictEnum.Value); } } // DeserializingResourceReader can read ResourceReader format using (MemoryStream ms = new MemoryStream(binaryWriterBuffer, false)) using (DeserializingResourceReader reader = new DeserializingResourceReader(ms)) { IDictionaryEnumerator dictEnum = reader.GetEnumerator(); while (dictEnum.MoveNext()) { Assert.Equal(values[(string)dictEnum.Key], dictEnum.Value); } } }
private List <Mat> LoadImages() { var images = new List <Mat>(); try { var imgResourceStream = GetType().Assembly .GetManifestResourceStream("Video.Properties.Resources.resources"); using var reader = new DeserializingResourceReader(imgResourceStream); foreach (var item in reader) { var bitmap = ((DictionaryEntry)item).Value as Bitmap; var mat = BitmapConverter.ToMat(bitmap); images.Add(mat); } } catch (Exception ex) { _logger.LogError("Could not load image resources from assembly: {0}", ex.Message); } return(images); }
public static void BinaryFormattedResources() { var values = TestData.BinaryFormatted; byte[] writerBuffer, binaryWriterBuffer; using (MemoryStream ms = new MemoryStream()) using (ResourceWriter writer = new ResourceWriter(ms)) { BinaryFormatter binaryFormatter = new BinaryFormatter(); foreach (var pair in values) { using (MemoryStream memoryStream = new MemoryStream()) { binaryFormatter.Serialize(memoryStream, pair.Value); writer.AddResourceData(pair.Key, TestData.GetSerializationTypeName(pair.Value.GetType()), memoryStream.ToArray()); } } writer.Generate(); writerBuffer = ms.ToArray(); } using (MemoryStream ms = new MemoryStream()) using (PreserializedResourceWriter writer = new PreserializedResourceWriter(ms)) { BinaryFormatter binaryFormatter = new BinaryFormatter(); foreach (var pair in values) { using (MemoryStream memoryStream = new MemoryStream()) { binaryFormatter.Serialize(memoryStream, pair.Value); writer.AddBinaryFormattedResource(pair.Key, TestData.GetSerializationTypeName(pair.Value.GetType()), memoryStream.ToArray()); } } writer.Generate(); binaryWriterBuffer = ms.ToArray(); } // PreserializedResourceWriter should write ResourceWriter/ResourceReader format Assert.Equal(writerBuffer, binaryWriterBuffer); using (MemoryStream ms = new MemoryStream(writerBuffer, false)) using (ResourceReader reader = new ResourceReader(ms)) { typeof(ResourceReader).GetField("_permitDeserialization", BindingFlags.Instance | BindingFlags.NonPublic)?.SetValue(reader, true); IDictionaryEnumerator dictEnum = reader.GetEnumerator(); while (dictEnum.MoveNext()) { ResourceValueEquals(values[(string)dictEnum.Key], dictEnum.Value); } } // DeserializingResourceReader can read ResourceReader format using (MemoryStream ms = new MemoryStream(writerBuffer, false)) using (DeserializingResourceReader reader = new DeserializingResourceReader(ms)) { IDictionaryEnumerator dictEnum = reader.GetEnumerator(); while (dictEnum.MoveNext()) { ResourceValueEquals(values[(string)dictEnum.Key], dictEnum.Value); } } }