/// <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;
 }
示例#3
0
        /// <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)}");
        }