Skip to content

Commit 45846fc

Browse files
committed
update docs
1 parent de79660 commit 45846fc

File tree

1 file changed

+42
-34
lines changed

1 file changed

+42
-34
lines changed

docs/docs/dotnet-api-docs.md

Lines changed: 42 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -154,45 +154,18 @@ To disable the default filtering rules, set the `disableDefaultFilter` property
154154

155155
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.
156156

157-
There are two ways of customizing the API filters:
157+
### The `<exclude />` documentation comment
158158

159-
### Custom with Code
159+
The `<exclude />` documentation comment excludes the type or member on a per API basis using C# documentation comment:
160160

161-
To use a custom filtering with code:
162-
163-
1. Use docfx .NET API generation as a NuGet library:
164-
165-
```xml
166-
<PackageReference Include="Docfx.Dotnet" Version="2.62.0" />
167-
```
168-
169-
2. Configure the filter options:
170-
171-
```cs
172-
var options = new DotnetApiOptions
173-
{
174-
// Filter based on types
175-
IncludeApi = symbol => ...
176-
177-
// Filter based on attributes
178-
IncludeAttribute = symbol => ...
179-
}
180-
181-
await DotnetApiCatalog.GenerateManagedReferenceYamlFiles("docfx.json", options);
161+
```csharp
162+
/// <exclude />
163+
public class Foo { }
182164
```
183165

184-
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
166+
### Custom filter rules
194167

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:
168+
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:
196169

197170
```json
198171
{
@@ -265,3 +238,38 @@ apiRules:
265238
```
266239

267240
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.
241+
242+
243+
### Custom code filter
244+
245+
To use a custom filtering with code:
246+
247+
1. Use docfx .NET API generation as a NuGet library:
248+
249+
```xml
250+
<PackageReference Include="Docfx.Dotnet" Version="2.62.0" />
251+
```
252+
253+
2. Configure the filter options:
254+
255+
```cs
256+
var options = new DotnetApiOptions
257+
{
258+
// Filter based on types
259+
IncludeApi = symbol => ...
260+
261+
// Filter based on attributes
262+
IncludeAttribute = symbol => ...
263+
}
264+
265+
await DotnetApiCatalog.GenerateManagedReferenceYamlFiles("docfx.json", options);
266+
```
267+
268+
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.
269+
270+
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.
271+
272+
Hiding the parent symbol also hides all of its child symbols, e.g.:
273+
- If a namespace is hidden, all child namespaces and types underneath it are hidden.
274+
- If a class is hidden, all nested types underneath it are hidden.
275+
- If an interface is hidden, explicit implementations of that interface are also hidden.

0 commit comments

Comments
 (0)