Example #1
0
 public WorkspaceAnalyzerReferenceAsset(AnalyzerReference reference, ISerializerService serializer) :
     base(
         serializer.CreateChecksum(reference, CancellationToken.None),
         WellKnownSynchronizationKind.AnalyzerReference)
 {
     _reference  = reference;
     _serializer = serializer;
 }
Example #2
0
        public static WorkspaceAnalyzerReferenceAsset Create(
            AnalyzerReference reference,
            ISerializerService serializer,
            CancellationToken cancellationToken)
        {
            var checksum = Checksum.Create(
                WellKnownSynchronizationKind.AnalyzerReference,
                serializer.CreateChecksum(reference, cancellationToken));

            return(new WorkspaceAnalyzerReferenceAsset(reference, serializer, checksum));
        }
Example #3
0
        private static async Task <RemotableData> CloneAssetAsync(ISerializerService serializer, RemotableData asset)
        {
            using var stream = SerializableBytes.CreateWritableStream();
            using var writer = new ObjectWriter(stream);
            await asset.WriteObjectToAsync(writer, CancellationToken.None).ConfigureAwait(false);

            stream.Position  = 0;
            using var reader = ObjectReader.TryGetReader(stream);
            var recovered        = serializer.Deserialize <object>(asset.Kind, reader, CancellationToken.None);
            var assetFromStorage = new SolutionAsset(serializer.CreateChecksum(recovered, CancellationToken.None), recovered, serializer);

            Assert.Equal(asset.Checksum, assetFromStorage.Checksum);
            return(assetFromStorage);
        }
        private static SolutionAsset CloneAsset(ISerializerService serializer, SolutionAsset asset)
        {
            using var stream = SerializableBytes.CreateWritableStream();

            using (var writer = new ObjectWriter(stream, leaveOpen: true))
            {
                serializer.Serialize(asset.Value, writer, CancellationToken.None);
            }

            stream.Position  = 0;
            using var reader = ObjectReader.TryGetReader(stream);
            var recovered        = serializer.Deserialize <object>(asset.Kind, reader, CancellationToken.None);
            var assetFromStorage = new SolutionAsset(serializer.CreateChecksum(recovered, CancellationToken.None), recovered);

            Assert.Equal(asset.Checksum, assetFromStorage.Checksum);
            return(assetFromStorage);
        }
Example #5
0
        private async Task VerifyAsync(RemotableData remotableData, ISerializerService serializerService, CancellationToken cancellationToken)
        {
            using (var stream = new MemoryStream())
                using (var writer = new ObjectWriter(stream, cancellationToken))
                {
                    await remotableData.WriteObjectToAsync(writer, cancellationToken).ConfigureAwait(false);

                    stream.Position = 0;

                    using (var reader = ObjectReader.TryGetReader(stream, cancellationToken))
                    {
                        var value    = serializerService.Deserialize <object>(remotableData.Kind, reader, cancellationToken);
                        var checksum = serializerService.CreateChecksum(value, cancellationToken);

                        Debug.Assert(checksum == remotableData.Checksum);
                    }
                }
        }
 private Checksum GetParseOptionsChecksum(ISerializerService serializer, CancellationToken cancellationToken)
 => this.SupportsCompilation
         ? ChecksumCache.GetOrCreate(this.ParseOptions, _ => serializer.CreateChecksum(this.ParseOptions, cancellationToken))
         : Checksum.Null;