private void WritePrivateConstructor(ITypeDefinition type) { if (!_forCompilation || type.IsInterface || type.IsEnum || type.IsDelegate || type.IsValueType || type.IsStatic) { return; } var visibility = Filter switch { IncludeAllFilter _ => TypeMemberVisibility.Private, InternalsAndPublicCciFilter _ => TypeMemberVisibility.Private, IntersectionFilter intersection => intersection.Filters.Any( f => f is IncludeAllFilter || f is InternalsAndPublicCciFilter) ? TypeMemberVisibility.Private : TypeMemberVisibility.Assembly, _ => TypeMemberVisibility.Assembly }; WriteVisibility(visibility); if (IsBaseConstructorCallUnsafe(type)) { WriteKeyword("unsafe"); } WriteIdentifier(((INamedEntity)type).Name); WriteSymbol("("); WriteSymbol(")"); WriteBaseConstructorCall(type); WriteEmptyBody(); }
private static ICciFilter GetFilter( string apiList, bool all, bool includeInternals, bool apiOnly, bool excludeCompilerGenerated, string excludeApiList, bool excludeMembers, string excludeAttributesList, bool includeForwardedTypes) { ICciFilter includeFilter; if (!string.IsNullOrWhiteSpace(apiList)) { includeFilter = new DocIdIncludeListFilter(apiList); } else if (all) { includeFilter = new IncludeAllFilter(); } else if (includeInternals) { includeFilter = new InternalsAndPublicCciFilter(excludeAttributes: apiOnly, includeForwardedTypes); } else { includeFilter = new PublicOnlyCciFilter(excludeAttributes: apiOnly, includeForwardedTypes); } if (excludeCompilerGenerated) { includeFilter = new IntersectionFilter(includeFilter, new ExcludeCompilerGeneratedCciFilter()); } if (!string.IsNullOrWhiteSpace(excludeApiList)) { includeFilter = new IntersectionFilter(includeFilter, new DocIdExcludeListFilter(excludeApiList, excludeMembers)); } if (!string.IsNullOrWhiteSpace(excludeAttributesList)) { includeFilter = new IntersectionFilter(includeFilter, new ExcludeAttributesFilter(excludeAttributesList)); } return(includeFilter); }
private static ICciFilter GetCciFilter( bool enforcingMdilRules, bool excludeNonBrowsable, bool includeInternals, bool excludeCompilerGenerated) { ICciFilter includeFilter; if (enforcingMdilRules) { includeFilter = new MdilPublicOnlyCciFilter() { IncludeForwardedTypes = true }; } else if (excludeNonBrowsable) { includeFilter = new PublicEditorBrowsableOnlyCciFilter() { IncludeForwardedTypes = true }; } else if (includeInternals) { includeFilter = new InternalsAndPublicCciFilter(); } else { includeFilter = new PublicOnlyCciFilter() { IncludeForwardedTypes = true }; } if (excludeCompilerGenerated) { includeFilter = new IntersectionFilter(includeFilter, new ExcludeCompilerGeneratedCciFilter()); } return(includeFilter); }