You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/docs/dotnet-api-docs.md
+46-34Lines changed: 46 additions & 34 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -146,6 +146,10 @@ To disable markdown parsing while processing XML tags, set `shouldSkipMarkup` to
146
146
}
147
147
```
148
148
149
+
In addition, docfx supports these C# documentation comments:
150
+
151
+
### `<exclude>`
152
+
149
153
## Filter APIs
150
154
151
155
Docfx shows only the public accessible types and methods callable from another assembly. It also has a set of [default filtering rules](https://github.com/dotnet/docfx/blob/main/src/Docfx.Dotnet/Resources/defaultfilterconfig.yml) that excludes common API patterns based on attributes such as `[EditorBrowsableAttribute]`.
@@ -154,45 +158,18 @@ To disable the default filtering rules, set the `disableDefaultFilter` property
154
158
155
159
To show private methods, set the `includePrivateMembers` config to `true`. When enabled, internal only langauge keywords such as `private` or `internal` starts to appear in the declaration of all APIs, to accurately reflect API accessibility.
156
160
157
-
There are two ways of customizing the API filters:
161
+
### The `<exclude />` documentation comment
158
162
159
-
### Custom with Code
163
+
The `<exclude />` documentation comment excludes the type or member on a per API basis using C# documentation comment:
160
164
161
-
To use a custom filtering with code:
162
-
163
-
1. Use docfx .NET API generation as a NuGet library:
The filter callbacks takes an [`ISymbol`](https://learn.microsoft.com/en-us/dotnet/api/microsoft.codeanalysis.isymbol?view=roslyn-dotnet) interface and produces an [`SymbolIncludeState`](../api/Docfx.Dotnet.SymbolIncludeState.yml) enum to choose between include the API, exclude the API or use the default filtering behavior.
185
-
186
-
The callbacks are raised before applying the default rules but after processing type accessibility rules. Private types and members cannot be marked as include unless `includePrivateMembers` is true.
187
-
188
-
Hiding the parent symbol also hides all of its child symbols, e.g.:
189
-
- If a namespace is hidden, all child namespaces and types underneath it are hidden.
190
-
- If a class is hidden, all nested types underneath it are hidden.
191
-
- If an interface is hidden, explicit implementations of that interface are also hidden.
192
-
193
-
### Custom with Filter Rules
194
-
195
-
To add additional filter rules, add a custom YAML file and set the `filter` property in `docfx.json` to point to the custom YAML filter:
172
+
To bulk filter APIs with custom filter rules, add a custom YAML file and set the `filter` property in `docfx.json` to point to the custom YAML filter:
196
173
197
174
```json
198
175
{
@@ -265,3 +242,38 @@ apiRules:
265
242
```
266
243
267
244
Where the `ctorArguments` property specifies a list of match conditions based on constructor parameters and the `ctorNamedArguments` property specifies match conditions using named constructor arguments.
245
+
246
+
247
+
### Custom code filter
248
+
249
+
To use a custom filtering with code:
250
+
251
+
1. Use docfx .NET API generation as a NuGet library:
The filter callbacks takes an [`ISymbol`](https://learn.microsoft.com/en-us/dotnet/api/microsoft.codeanalysis.isymbol?view=roslyn-dotnet) interface and produces an [`SymbolIncludeState`](../api/Docfx.Dotnet.SymbolIncludeState.yml) enum to choose between include the API, exclude the API or use the default filtering behavior.
273
+
274
+
The callbacks are raised before applying the default rules but after processing type accessibility rules. Private types and members cannot be marked as include unless `includePrivateMembers` is true.
275
+
276
+
Hiding the parent symbol also hides all of its child symbols, e.g.:
277
+
- If a namespace is hidden, all child namespaces and types underneath it are hidden.
278
+
- If a class is hidden, all nested types underneath it are hidden.
279
+
- If an interface is hidden, explicit implementations of that interface are also hidden.
0 commit comments