Пример #1
0
        public void ToString(TextWriter writer)
        {
            var indentingWriter = IndentingTextWriter.Get(writer);

            foreach (var requirement in this.Requirements)
            {
                indentingWriter.WriteLine("{0} = {1} (required: {2})", requirement.Key, ReflectionHelpers.GetTypeName(requirement.Value.MetadatumValueType, false, true, null, null), requirement.Value.IsMetadataumValueRequired);
            }
        }
Пример #2
0
        public void ToString(TextWriter writer)
        {
            var indentingWriter = IndentingTextWriter.Get(writer);

            indentingWriter.WriteLine("ContractName: {0}", this.ContractName);
            indentingWriter.WriteLine("Metadata:");
            using (indentingWriter.Indent())
            {
                foreach (var item in this.Metadata)
                {
                    indentingWriter.WriteLine("{0} = {1}", item.Key, item.Value);
                }
            }
        }
Пример #3
0
        public void ToString(TextWriter writer)
        {
            var indentingWriter = IndentingTextWriter.Get(writer);

            indentingWriter.WriteLine("ImportDefinition:");
            using (indentingWriter.Indent())
            {
                this.ImportDefinition.ToString(writer);
            }

            indentingWriter.WriteLine("ComposablePartType: {0}", this.ComposablePartType.FullName);
            indentingWriter.WriteLine("ImportingMember: {0}", this.ImportingMember);
            indentingWriter.WriteLine("ParameterInfo: {0}", this.ImportingParameter);
            indentingWriter.WriteLine("ImportingSiteType: {0}", this.ImportingSiteType);
        }
Пример #4
0
        public void ToString(TextWriter writer)
        {
            var indentingWriter = IndentingTextWriter.Get(writer);

            using (indentingWriter.Indent())
            {
                foreach (var part in this.parts)
                {
                    indentingWriter.WriteLine("Part");
                    using (indentingWriter.Indent())
                    {
                        part.ToString(indentingWriter);
                    }
                }
            }
        }
Пример #5
0
        private long objectTableCapacityStreamPosition = -1; // -1 indicates the stream isn't capable of seeking.

        internal SerializationContextBase(BinaryReader reader, Resolver resolver)
        {
            Requires.NotNull(reader, nameof(reader));
            Requires.NotNull(resolver, nameof(resolver));

            this.reader   = reader;
            this.Resolver = resolver;

            // At the head of the stream, read in the estimated or actual size of the object table we will require.
            // This reduces GC pressure and time spent resizing the object table during deserialization.
            int objectTableCapacity     = reader.ReadInt32();
            int objectTableSafeCapacity = Math.Min(objectTableCapacity, 1000000); // protect against OOM in case of data corruption.

            this.deserializingObjectTable = new Dictionary <uint, object>(objectTableSafeCapacity);
#if TRACESERIALIZATION || TRACESTATS
            this.trace = new IndentingTextWriter(new StreamWriter(File.OpenWrite(Environment.ExpandEnvironmentVariables(@"%TEMP%\VS-MEF.read.log"))));
#endif
        }
Пример #6
0
        private static string GetImportConstraints(ImportDefinition importDefinition)
        {
            Requires.NotNull(importDefinition, nameof(importDefinition));

            var stringWriter    = new StringWriter();
            var indentingWriter = IndentingTextWriter.Get(stringWriter);

            using (indentingWriter.Indent())
            {
                indentingWriter.WriteLine("Contract name: {0}", importDefinition.ContractName);
                foreach (var exportConstraint in importDefinition.ExportConstraints.OfType <IDescriptiveToString>())
                {
                    exportConstraint.ToString(indentingWriter);
                }
            }

            return(stringWriter.ToString());
        }
Пример #7
0
        internal SerializationContextBase(BinaryWriter writer, int estimatedObjectCount, Resolver resolver)
        {
            Requires.NotNull(writer, nameof(writer));
            Requires.NotNull(resolver, nameof(resolver));

            this.writer = writer;
            this.serializingObjectTable = new Dictionary <object, uint>(estimatedObjectCount, SmartInterningEqualityComparer.Default);
            this.Resolver = resolver;
#if TRACESTATS
            this.sizeStats = new Dictionary <string, int>();
#endif
#if TRACESERIALIZATION || TRACESTATS
            this.trace = new IndentingTextWriter(new StreamWriter(File.OpenWrite(Environment.ExpandEnvironmentVariables(@"%TEMP%\VS-MEF.write.log"))));
#endif

            // Don't use compressed uint here. It must be a fixed size because we *may*
            // come back and rewrite this at the end of serialization if this stream is seekable.
            // Otherwise, we'll leave it at our best estimate given the size of the data being serialized.
            Stream writerStream = writer.BaseStream;
            this.objectTableCapacityStreamPosition = writerStream.CanSeek ? writer.BaseStream.Position : -1;
            this.writer.Write(estimatedObjectCount);
        }
Пример #8
0
        public void ToString(TextWriter writer)
        {
            var indentingWriter = IndentingTextWriter.Get(writer);

            indentingWriter.WriteLine("RequiredCreationPolicy: {0}", this.RequiredCreationPolicy);
        }
Пример #9
0
        internal static void ToString(this IReadOnlyDictionary <string, object> metadata, IndentingTextWriter writer)
        {
            Requires.NotNull(metadata, nameof(metadata));
            Requires.NotNull(writer, nameof(writer));

            foreach (var item in metadata)
            {
                writer.WriteLine("{0} = {1}", item.Key, item.Value);
            }
        }
Пример #10
0
        public void ToString(TextWriter writer)
        {
            var indentingWriter = IndentingTextWriter.Get(writer);

            indentingWriter.WriteLine("Type: {0}", this.Type.FullName);
            if (this.Metadata.Count > 0)
            {
                indentingWriter.WriteLine("Part metadata:");
                using (indentingWriter.Indent())
                {
                    foreach (var item in this.Metadata)
                    {
                        indentingWriter.WriteLine("{0} = {1}", item.Key, item.Value);
                    }
                }
            }

            indentingWriter.WriteLine("SharingBoundary: {0}", this.SharingBoundary.SpecifyIfNull());
            indentingWriter.WriteLine("IsSharingBoundaryInferred: {0}", this.IsSharingBoundaryInferred);
            indentingWriter.WriteLine("CreationPolicy: {0}", this.CreationPolicy);
            indentingWriter.WriteLine("OnImportsSatisfied:");
            using (indentingWriter.Indent())
            {
                foreach (MethodRef method in this.OnImportsSatisfiedMethodRefs)
                {
                    indentingWriter.WriteLine(method);
                }
            }

            indentingWriter.WriteLine("ExportedTypes:");
            using (indentingWriter.Indent())
            {
                foreach (var item in this.ExportedTypes.OrderBy(et => et.ContractName))
                {
                    indentingWriter.WriteLine("ExportDefinition");
                    using (indentingWriter.Indent())
                    {
                        item.ToString(indentingWriter);
                    }
                }
            }

            indentingWriter.WriteLine("ExportingMembers:");
            using (indentingWriter.Indent())
            {
                foreach (var exportingMember in this.ExportingMembers)
                {
                    indentingWriter.WriteLine(exportingMember.Key.MemberInfo.Name);
                    using (indentingWriter.Indent())
                    {
                        foreach (var export in exportingMember.Value)
                        {
                            export.ToString(indentingWriter);
                        }
                    }
                }
            }

            indentingWriter.WriteLine("ImportingMembers:");
            using (indentingWriter.Indent())
            {
                foreach (var importingMember in this.ImportingMembers)
                {
                    importingMember.ToString(indentingWriter);
                }
            }

            if (this.ImportingConstructorImports == null)
            {
                indentingWriter.WriteLine("ImportingConstructor: <null>");
            }
            else
            {
                indentingWriter.WriteLine("ImportingConstructor:");
                using (indentingWriter.Indent())
                {
                    foreach (var import in this.ImportingConstructorImports)
                    {
                        import.ToString(indentingWriter);
                    }
                }
            }
        }
Пример #11
0
        public void ToString(TextWriter writer)
        {
            var indentingWriter = IndentingTextWriter.Get(writer);

            indentingWriter.WriteLine("{0} = {1}", this.Name, this.Value);
        }
        public void ToString(TextWriter writer)
        {
            var indentingWriter = IndentingTextWriter.Get(writer);

            indentingWriter.WriteLine("TypeIdentityName: {0}", this.TypeIdentityName);
        }
Пример #13
0
 internal CancelIndent(IndentingTextWriter writer)
 {
     Requires.NotNull(writer, nameof(writer));
     this.writer = writer;
 }