/// <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 <see cref="ContractToImplementorMapEmbedder"/> /// </summary> /// <param name="buildTarget"><see cref="BuildTarget"/> to embed for</param> /// <param name="modifiers"><see cref="ITargetAssemblyModifiers"/> for working with modifiers</param> /// <param name="serializer"><see cref="IContractToImplementorsSerializer"/> for serializating maps</param> /// <param name="buildMessages"><see cref="IBuildMessages"/> for outputting build messages</param> /// <param name="logger"><see cref="ILogger"/> for logging</param> public ContractToImplementorMapEmbedder( BuildTarget buildTarget, ITargetAssemblyModifiers modifiers, IContractToImplementorsSerializer serializer, IBuildMessages buildMessages, ILogger logger) { _buildTarget = buildTarget; _modifiers = modifiers; _buildMessages = buildMessages; _logger = logger; _serializer = serializer; }
/// <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)}"); }