示例#1
0
        private void WriteIndexers(Type type, MarkdownWriter writer)
        {
            var indexers = type.GetProperties()
                           .Where(p => p.GetIndexParameters().Length > 0)
                           .OrderBy(p => p.GetIndexParameters().Length)
                           .ToArray();

            if (indexers.Length == 0)
            {
                return;
            }

            writer.WriteHeader(3, "Indexers");

            for (int i = 0; i < indexers.Length; i++)
            {
                var indexDocs = Docs[ID.GetIDString(indexers[i])];
                writer.WriteHeader(4, DocUtilities.GetPropertySignature(indexers[i], false, true, false));
                PrintObsoleteWarning(indexers[i], writer);
                Summary(indexDocs, writer);

                writer.WriteCodeBlock(Lang, DocUtilities.GetPropertySignature(indexers[i], true, true, true));

                Remarks(5, indexDocs, writer);
            }
        }
示例#2
0
        private void WriteProperties(Type type, MarkdownWriter writer)
        {
            var props = type.GetProperties(MemberSearchFlags)
                        // Show protected members if class is not sealed
                        .Where(p => type.IsSealed
                                        ? (p.CanRead && p.GetMethod.IsPublic) || (p.CanWrite && p.SetMethod.IsPublic)
                                        : (p.CanRead && !p.GetMethod.IsPrivate) || (p.CanWrite && !p.SetMethod.IsPrivate))
                        // Indexers are technically properties, but we want to handle them separately
                        .Where(p => p.GetIndexParameters().Length == 0)
                        // Sort alphabetically
                        .OrderBy(p => p.Name)
                        .ToArray();

            if (props.Length == 0)
            {
                return;
            }

            writer.WriteHeader(3, "Properties");

            for (int i = 0; i < props.Length; i++)
            {
                var propDocs = Docs[ID.GetIDString(props[i])];
                writer.WriteHeader(4, DocUtilities.GetPropertySignature(props[i], false, false, false));
                PrintObsoleteWarning(props[i], writer);
                Summary(propDocs, writer);

                writer.WriteCodeBlock(Lang, DocUtilities.GetPropertySignature(props[i], true, true, true));

                Remarks(5, propDocs, writer);
            }
        }