MRefBuilder arguments

Topics: General Questions
Aug 1, 2008 at 3:25 PM
Hello there,

I was wondering if there was a way to change the DocProject commandline arguments for the MRefBuilder?
The problem is, that when I build my documentation it always calls the MRefBuilder with the argument /internal- but I would like it to be /internal+ so that private methods etc will be included in the documentation.

I hope you can help, thanks in advance.

Aug 1, 2008 at 3:56 PM
Hi DK,

There's no need to use the command-line.

Open the DocProject Properties window and change the value of the Build | Documentation scope option to Complete.

- Dave
Sep 5, 2008 at 1:49 PM
Thank you Dave. I must have overlooked that setting.

Another thing, in the generated documentation all class members inclusive inherited ones are displayed. Is it possible to change that behaviour to only view direct class members or to hide inherited ones somehow?

Because even for a relatively small class there is a huge list of members now just because it inherits from some class. I mean that feature may be useful at some point, it just would be nice to view inherited members extra so I can hide them or something.

Thanks for your help.

Sep 5, 2008 at 6:47 PM
Hi DK, 

  1. In the Topic Filters tool window (or the Topic Filters tab in the Topic Management dialog), go to the Saved Filters tab and click the green plus sign  You should see an Inheritance Filter in the Available list.
  2. Double-click the Inheritance Filter row to add it to the Selected list.
  3. Click OK.  The filter will be added to the Saved Filters list.
  4. Check Local filter if you want to exclude members that are being documented; i.e., members defined in one of the project's source assemblies.
  5. Check Remote filter if you want to exclude members that aren't being documented; i.e., members defined in .NET Framework assemblies such as System.dll.  (This setting should probably be called Reference or Source filter instead of Remote filter, so maybe I'll change that in a future build.)
  6. Check Prefixes if you want to enable the list of prefixes below.  The name of each API is matched against each prefix in the list and then it's either excluded or included depending upon the state of the Include check box above the list; e.g., to only exclude APIs in certain .NET Framework assemblies by matching prefixes, uncheck all Modes except for Prefixes, uncheck Include, and then add prefixes to the list such as System. and Microsoft..
  7. Click Done.
  8. Make sure that the Build column is checked so that the filter is applied during builds.
  9. Make sure that the Include column is unchecked so that the filter is enabled.  (When Include is checked the Inheritance Filter does not process APIs at all, effectively disabling the filter.)
  10. Optionally add a Memo that describes the reason for using this filter.
  11. Save all of your changes by pressing the Save All button in Visual Studio or the Save button in the DocProject External UI.

The next time that you build the project the filter will exclude all matching inheritance information from all topics that Sandcastle generates.

Sorry for the lengthy explanation.  I figured that I can use it for documentation so I might as well write it now :)

- Dave