[Mono-dev] Adding documentation for new namespace

Chris Bacon chris at dunelm.org.uk
Thu Jul 1 07:11:35 EDT 2010


Hi Jon,

Thanks for thes instructions.

When I run monodoc and select one of the new namespaces in corlib (e.g. 
System.Diagnostics.Contracts) monodoc throws an exception:
chris at ubuntuPC:~/Mono/mcs/class/corlib$ monodoc --edit Documentation/en
using WebKit
using WebKit
Marshaling changed signal
Exception in Gtk# callback delegate
  Note: Applications can use GLib.ExceptionManager.UnhandledException to 
handle the exception.
System.Reflection.TargetInvocationException: Exception has been thrown 
by the target of an invocation. ---> System.ArgumentNullException: 
Argument cannot be null.
Parameter name: path
  at System.IO.FileStream..ctor (System.String path, FileMode mode, 
FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, 
FileOptions options) [0x00000]
  at System.IO.FileStream..ctor (System.String path, FileMode mode, 
FileAccess access, FileShare share) [0x00000]
  at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor 
(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
  at System.IO.File.OpenRead (System.String path) [0x00000]
  at ICSharpCode.SharpZipLib.Zip.ZipFile..ctor (System.String name) 
[0x00000]
  at Monodoc.HelpSource.GetHelpXmlWithChanges (System.String id) [0x00000]
  at Monodoc.EcmaHelpSource.RenderNamespaceLookup (System.String nsurl, 
Monodoc.Node& match_node) [0x00000]
  at Monodoc.RootTree.RenderUrl (System.String url, Monodoc.Node& 
match_node) [0x00000]
  at Monodoc.TreeBrowser.RowActivated (System.Object sender, 
System.EventArgs a) [0x00000]
  at (wrapper managed-to-native) 
System.Reflection.MonoMethod:InternalInvoke 
(object,object[],System.Exception&)
  at System.Reflection.MonoMethod.Invoke (System.Object obj, 
BindingFlags invokeAttr, System.Reflection.Binder binder, 
System.Object[] parameters, System.Globalization.CultureInfo culture) 
[0x00000]
  --- End of inner exception stack trace ---
  at System.Reflection.MonoMethod.Invoke (System.Object obj, 
BindingFlags invokeAttr, System.Reflection.Binder binder, 
System.Object[] parameters, System.Globalization.CultureInfo culture) 
[0x00000]
  at System.Reflection.MethodBase.Invoke (System.Object obj, 
System.Object[] parameters) [0x00000]
  at System.Delegate.DynamicInvokeImpl (System.Object[] args) [0x00000]
  at System.MulticastDelegate.DynamicInvokeImpl (System.Object[] args) 
[0x00000]
  at System.Delegate.DynamicInvoke (System.Object[] args) [0x00000]
  at GLib.Signal.ClosureInvokedCB (System.Object o, 
GLib.ClosureInvokedArgs args) [0x00000]
  at GLib.SignalClosure.Invoke (GLib.ClosureInvokedArgs args) [0x00000]
  at GLib.SignalClosure.MarshalCallback (IntPtr raw_closure, IntPtr 
return_val, UInt32 n_param_vals, IntPtr param_values, IntPtr 
invocation_hint, IntPtr marshal_data) [0x00000]
   at GLib.ExceptionManager.RaiseUnhandledException(System.Exception e, 
Boolean is_terminal)
   at GLib.SignalClosure.MarshalCallback(IntPtr raw_closure, IntPtr 
return_val, UInt32 n_param_vals, IntPtr param_values, IntPtr 
invocation_hint, IntPtr marshal_data)
   at Gtk.Application.gtk_main()
   at Gtk.Application.Run()
   at Monodoc.Driver.Main(System.String[] args)
chris at ubuntuPC:~/Mono/mcs/class/corlib$

It doesn't crash when selecting a namespace that isn't new.

Thanks
Chris

Jonathan Pryor wrote:
> On Wed, 2010-06-30 at 14:58 +0100, Chris Bacon wrote:
>   
>> I would like to add some documentation for the 
>> System.Diagnostics.Contracts namespace, for which there is currently no 
>> documentation.
>>
>> I cannot see a way to add a new namespace using the Mono Documentation 
>> Library. Please could someone let me know how best to do this.
>>     
>
>         cd mcs/class/corlib
>         	# or some other assembly directory.
>         make PROFILE=net_4_0 doc-update
>                 # generates doc stubs in Documentation/en
>         monodoc --edit Documentation/en
>         	# view the 'Mono Documentation/mscorlib' node in the
>         	# left-hand pane. [0]
>         
> You can then edit e.g.
> mcs/class/corlib/Documentation/en/System.Diagnostics.Contracts/*.xml,
> `svn add` your XML files and `svn commit` them.
>
> I've just committed the doc stubs for mscorlib.dll v4.0, so your first
> commit won't intermix stubs with content (and be gigantic); r159740.
>
> To install the docs:
>
>         cd mcs/docs
>         rm netdocs{.tree,.zip}
>         make PROFILE=net_4_0
>         make PROFILE=net_4_0 install
>
> The intermediate `rm` is needed to ensure that nedocs.zip is rebuilt, as
> the make(1) dependencies for rebuilding are inadequate.
>
> Once you've `make install`ed, monodoc will show the new documentation.
>
>  - Jon
>
> [0] I can't actually recommend 'monodoc --edit' for editing
> documentation [1], but it is handy for viewing documentation without
> assembling and installing it.
>
> [1]
> http://www.jprl.com/Blog/archive/development/mono/mdoc/2010/Jan-10.html
>
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20100701/f3c2d5b9/attachment.html 


More information about the Mono-devel-list mailing list