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