/// <summary> /// Initializes a new instance of <see cref="CachedContractToImplementorsMap"/> /// </summary> /// <param name="serializer"><see cref="IContractToImplementorsSerializer"/> for serialization</param> /// <param name="assembly"><see cref="Assembly"/> that holds the cache</param> public CachedContractToImplementorsMap(IContractToImplementorsSerializer serializer, Assembly assembly) { var before = DateTime.UtcNow; using (var resourceStream = assembly.GetManifestResourceStream(MapResourceName)) { var bytes = new byte[resourceStream.Length]; resourceStream.Read(bytes, 0, bytes.Length); /*var chars = new char[bytes.Length]; * System.Buffer.BlockCopy(bytes,0,chars,0,bytes.Length); * var serialized = new string(chars);*/ //Console.WriteLine(serialized); var serialized = System.Text.Encoding.UTF8.GetString(bytes, 0, bytes.Length); _map = serializer.DeserializeMap(serialized); } using (var resourceStream = assembly.GetManifestResourceStream(TypesResourceName)) { var bytes = new byte[resourceStream.Length]; resourceStream.Read(bytes, 0, bytes.Length); /*var chars = new char[bytes.Length]; * System.Buffer.BlockCopy(bytes,0,chars,0,bytes.Length); * var serialized = new string(chars);*/ var serialized = System.Text.Encoding.UTF8.GetString(bytes, 0, bytes.Length); _all = serializer.DeserializeTypes(serialized); } Console.WriteLine($"Deserialization : {DateTime.UtcNow.Subtract(before).ToString("G")}"); }
/// <summary> /// Initializes a new instance of the <see cref="CachedContractToImplementorsMap"/> class. /// </summary> /// <param name="serializer"><see cref="IContractToImplementorsSerializer"/> for serialization.</param> /// <param name="assembly"><see cref="Assembly"/> that holds the cache.</param> public CachedContractToImplementorsMap(IContractToImplementorsSerializer serializer, Assembly assembly) { var before = DateTime.UtcNow; using (var resourceStream = assembly.GetManifestResourceStream(MapResourceName)) { var bytes = new byte[resourceStream.Length]; resourceStream.Read(bytes, 0, bytes.Length); var serialized = System.Text.Encoding.UTF8.GetString(bytes, 0, bytes.Length); ContractsAndImplementors = serializer.DeserializeMap(serialized); } using (var resourceStream = assembly.GetManifestResourceStream(TypesResourceName)) { var bytes = new byte[resourceStream.Length]; resourceStream.Read(bytes, 0, bytes.Length); var serialized = System.Text.Encoding.UTF8.GetString(bytes, 0, bytes.Length); All = serializer.DeserializeTypes(serialized); } Console.WriteLine($"Deserialization : {DateTime.UtcNow.Subtract(before).ToString("G", CultureInfo.InvariantCulture)}"); }