[Mono-list] Question about attributes

Rodolfo Campero rodolfocampero@hotmail.com
Thu, 29 Apr 2004 12:56:30 +0000


I know that you can document your apps with monodoc related tools; there is 
a tool that can generate a set of XML files from your code, then you can 
fill this files with your documentation. Later you can keep the file 
structure updated with your code using another tool.

Monodoc understands and can display documentation in this format.

I don't know if there is some effort to create a translator from monodoc XML 
format to Microsoft XML documentation format. That would be nice, because 
one could use NDoc to generate files for Windows users.

Does anyone knows about such a tool?

Rodolfo

>From: xiii29@free.fr
>To: mono-list@lists.ximian.com,Jonathan Stowe <gellyfish@gellyfish.com>
>Subject: Re: [Mono-list] Question about attributes
>Date: Thu, 29 Apr 2004 13:35:07 +0200
>
>
>Ok, so there is no recommendation about attributes to use in mono for
>documentation...
>
>I don't want using XML tags as it doesn't work with VB.Net by default (I
>think...) and you have to deliver : assembly and XML file ... So I will 
>create
>some attributes !
>
>Thanks for all the answer !
>
>Thierry
>
>
>Selon Jonathan Stowe <gellyfish@gellyfish.com>:
>
> > On Thu, 2004-04-29 at 07:56, xiii29@free.fr wrote:
> > > Hi,
> > >
> > > First : Thanks for the explanation ;-)
> > >
> > > But my question what about which attributes using in order to document
> > methods
> > > or function in my code.
> > >
> > > For example, if you want the Visual Studio .Net Property Panel to be 
>able
> > to
> > > display info about your properties you have to use
> > > System.ComponentModel.Description("The description").
> > >
> >
> > You can do just the same with mono:
> >
> > using System;
> > using System.ComponentModel;
> >
> >
> > class MyTest
> > {
> >         [Description("Test")]
> >         public void whatever()
> >         {
> >
> >         }
> > }
> >
> > Will work (i.e. compile) just fine.  Whether or not it is any use is
> > whether the tools you want to use can get at this information.  The
> > DescriptionAttribute is used for design time purposes (i.e. to display
> > in the properties panel of a visual tool) rather than strictly for
> > documentation, if you want to autogenerate documentation from your code
> > you might me better of using the XML documentation comments rather than
> > this.
> >
> > Of course you can create your own attributes by inheriting from
> > System.Attribute as documented on MSDN and elsewhere.
> >
> > /J\
> >
> > > This is a Visual Studio .Net rules.
> > >
> > > Now my question is : of I want to add documention to my methods, class
> > etc...
> > > which meta-attributes do I use ?
> > >
> > > Maybe there is no dedicated attributes and I will have to create my
> > owns...
> > >
> > > Thierry !
> > >
> > >
> > > Selon Jonathan Pryor <jonpryor@vt.edu>:
> > >
> > > > On Wed, 2004-04-28 at 16:46, Xiii29 wrote:
> > > > > I've question about attributes in Mono. I would like to comment my
> > > > > assemblys by using attributes (meta-attributes...) and i'm 
>wondering
> > if
> > > > > there is "rules" (or preconisations...) about which attributes
> > using...
> > > >
> > > > I'm pretty sure I don't understand your question at all.  But I'll 
>take
> > > > a shot anyway...
> > > >
> > > > To use an assembly-level attribute, you need to explicitly specify 
>what
> > > > the attribute is associated with.  For example:
> > > >
> > > > 	[assembly: AssemblyTitle ("my title")]
> > > > 	[assembly: AssemblyVersion ("1.0.*")]
> > > >
> > > > The "assembly:" indicates that the attribute applies to the 
>assembly.
> > > > Otherwise it would apply to the next member listed in the file
> > > > (delegate, class, structure, etc.) or generate an error (namespaces
> > > > don't support attributes).  Similar things can be done for other
> > > > elements; for example: "return:" can be used to place an attribute 
>on
> > > > the return type of a method, while normally the attribute applies to 
>the
> > > > method itself:
> > > >
> > > > 	[SomeAttribute ("applies to MyMethod")]
> > > > 	[return: SomeAttribute ("applies to the return type")]
> > > > 	int MyMethod () {return 42;}
> > > >
> > > > As for general rules...  You can only use attributes which can be
> > > > applied to an assembly; that is, the attribute you're trying to use 
>must
> > > > itself have an AttributeUsage attribute with 
>AttributeTargets.Assembly
> > > > specified.  Not all attributes do this; the DllImport attribute, for
> > > > example, can only be applied to methods.
> > > >
> > > > Aside from that, the normal attribute restrictions apply.  Which 
>means
> > > > that attribute positional and named parameters can only be: one of 
>the
> > > > CLS-compliant built-in types (bool, byte, char, double, float, int,
> > > > long, short, string); System.Type, an enum type; System.Object; or 
>an
> > > > array of one of the previous types.
> > > >
> > > > See a good C# book, or MSDN, or google, for more information.
> > > >
> > > >  - Jon
> > > >
> > > >
> > > >
> > >
> > >
> > > _______________________________________________
> > > Mono-list maillist  -  Mono-list@lists.ximian.com
> > > http://lists.ximian.com/mailman/listinfo/mono-list
> >
> > _______________________________________________
> > Mono-list maillist  -  Mono-list@lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-list
> >
>
>
>_______________________________________________
>Mono-list maillist  -  Mono-list@lists.ximian.com
>http://lists.ximian.com/mailman/listinfo/mono-list

_________________________________________________________________
Add photos to your messages with MSN 8. Get 2 months FREE*. 
http://join.msn.com/?page=features/featuredemail